Standardowo zaczynam od znalezienia IP maszyny.

[parrot@parrot][~/Desktop]
└╼[]$sudo netdiscover -r 192.168.2.0/24
Currently scanning: Finished!   |   Screen View: Unique Hosts                 
                                                                               
 5 Captured ARP Req/Rep packets, from 4 hosts.   Total size: 300               
 _____________________________________________________________________________
   IP            At MAC Address     Count     Len  MAC Vendor / Hostname      
 -----------------------------------------------------------------------------
 192.168.2.1     00:50:56:c0:00:08      1      60  VMware, Inc.                
 192.168.2.2     00:50:56:f0:ed:fa      2     120  VMware, Inc.                
 192.168.2.140   00:0c:29:0d:d7:e8      1      60  VMware, Inc.                
 192.168.2.254   00:50:56:e6:6f:fe      1      60  VMware, Inc.

IP to : 192.168.2.140.

NMap TCP Scan

[parrot@parrot][~/vulnhub/tiki]
└╼[]$nmap -sC -sV 192.168.2.140
Starting Nmap 7.92 ( https://nmap.org ) at 2022-07-22 13:26 CEST
Nmap scan report for 192.168.2.140
Host is up (0.050s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 a3:d8:4a:89:a9:25:6d:07:c5:3d:76:28:06:ed:d1:c0 (RSA)
|   256 e7:b2:89:05:54:57:dc:02:f4:8c:3a:7c:55:8b:51:aa (ECDSA)
|_  256 fd:77:07:2b:4a:16:3a:01:6b:e0:00:0c:0a:36:d8:2f (ED25519)
80/tcp  open  http        Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
| http-robots.txt: 1 disallowed entry 
|_/tiki/
139/tcp open  netbios-ssn Samba smbd 4.6.2
445/tcp open  netbios-ssn Samba smbd 4.6.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-time: 
|   date: 2022-07-22T11:27:11
|_  start_date: N/A
|_clock-skew: -1s
|_nbstat: NetBIOS name: UBUNTU, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required

Strona główna port 80

Na stronie głównej mamy domyślną stronę Apache2.

robots.txt


/tiki

Po wejściu w URL http://192.168.2.140/tiki/ następuje przekierowanie na http://192.168.2.140/tiki/tiki-index.php. Zatem zdaje się, że mamy tutaj PHP. Sprawdziłem również bruteforcem foldery przy pomocy Feroxbustera, w głównym folderze, nie było nic interesującego, ale w podfolderze /tiki już coś mamy.

[parrot@parrot][~/vulnhub/tiki]
└╼[]$feroxbuster -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt  -u http://192.168.2.140/tiki -t 50 -d 1 -r

 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓                 ver: 2.3.3
───────────────────────────┬──────────────────────
 🎯  Target Url            │ http://192.168.2.140/tiki
 🚀  Threads               │ 50
 📖  Wordlist              │ /opt/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt
 👌  Status Codes          │ [200, 204, 301, 302, 307, 308, 401, 403, 405, 500]
 💥  Timeout (secs)7
 🦡  User-Agent            │ feroxbuster/2.3.3
 💉  Config File           │ /etc/feroxbuster/ferox-config.toml
 📍  Follow Redirects      │ true
 🔃  Recursion Depth       │ 1
 🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Cancel Menu™
──────────────────────────────────────────────────
200       16l       59w      960c http://192.168.2.140/tiki/lists/
200      469l     1513w        0c http://192.168.2.140/tiki/tiki-index.php
200       34l      173w     1192c http://192.168.2.140/tiki/README
200       15l       49w      757c http://192.168.2.140/tiki/vendor/
200      118l      404w     3095c http://192.168.2.140/tiki/INSTALL
[####################] - 2m   1273818/1273818 0s      found:5       errors:0      
[####################] - 2m   1273818/1273818 9343/s  http://192.168.2.140/tiki

Teraz już wiem, że jest to CMS TikiWiki. Znalazłem również pliczek README pod URL http://192.168.2.140/tiki/README, z którego wynika, że jest to wersja 21.1.

Searchsploit znalazł podatność, którą oczywiście przetestuje.

Podatność polega na próbach bruteforca logowania (http://192.168.2.140/tiki/tiki-login.php), aż do momentu zablokowania konta. Po zablokowaniu możliwe jest zalogowanie bez żadnego hasła.

CMS umożliwia upload plików, także zabieram się za przygotowanie php-reverse-shell.php, którego spróbuję zuploadować i uruchomić, aby otrzymać połączenie.

Niestety nie poszło z tym tak sprawnie, co prawda CMS umożliwił mi upload pliku .php, ale miałem problemy z jego uruchomieniem. Znalazłem za to inny sposób na dostanie się do maszyny. Jedna ze stron wiki jest zapisana jako Credentials. Jak się okazało w środku były dane logowania do na SSH dla użytkownika silky.

silky:Agy8Y7SPJNXQzqA


SSH - silky

Próba logowania powiodła się.

/home/silky/Note/Mail.txt

silky@ubuntu:~/Note$ cat Mail.txt 
Hi Silky
because of a current Breach we had to change all Passwords,
please note that it was a 0day, we don't know how he made it.

Your new CMS-password is now 51lky571k1, 
please investigate how he made it into our Admin Panel.

Cheers Boss.

Privileges Escalation

Wykonałem skan LinPeas, wychodzi na to, że user silky w grupie sudo. A to oznacza, że mając hasło do silky, możemy po prostu wykonać sudo su, wpisać hasło i mamy roota.

Root proof