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