githubEditar
hacktheboxlinuxipsec/ikesudo

Expressway

https://app.hackthebox.com/machines/Expressway

Summary

Máquina Linux de dificuldade média do HackTheBox que apresenta um servidor VPN IPsec/IKE. A exploração começou com a identificação do serviço IKE na porta UDP 500, onde o IKEv1 em modo Aggressive Mode expôs um hash da Pre-Shared Key (PSK). O hash foi capturado e crackeado offline utilizando dicionário rockyou.txt, revelando a credencial ike:freakingrockstarontheroad. Com acesso SSH ao servidor, a enumeração do sistema revelou uma versão vulnerável do sudo (1.9.17). A exploração do CVE-2025-32463 através de um módulo NSS malicioso num ambiente chroot permitiu escalar privilégios para root.

MITRE Kill Chain

1

Reconnaissance

A varredura de portas identificou os serviços SSH (22/TCP) e IPsec/IKE (500/UDP).

2

Initial Access

O IKEv1 Aggressive Mode expôs o hash da PSK. Após crackeamento, a credencial ike:freakingrockstarontheroad foi obtida.

3

Credential Access

A credencial obtida foi utilizada para acesso SSH bem-sucedido como utilizador ike.

4

Privilege Escalation

A versão 1.9.17 do sudo foi identificada como vulnerável ao CVE-2025-32463. A exploração através de um módulo NSS malicioso no chroot concedeu acesso root.

5

Persistence

Uma chave SSH foi adicionada ao authorized_keys do root para acesso persistente.


Pre Engagement

Antes de iniciar o reconhecimento, foi organizado o workspace para manter o controlo das informações recolhidas durante o teste.

Environment Variables

Um ficheiro .env foi criado com variáveis de ambiente para utilização repetitiva durante a avaliação:

#!/bin/bash
# --- Target Information ---
export TARGET_IP="10.10.11.87"
export TARGET_NAME="Expressway"

# --- Users Credential ---
export USER1=""
export PASS1=""

Ao fazer source deste ficheiro, as variáveis ficam disponíveis para reutilização:

Workspace Directories

Foram criados diretórios para organizar os dados de cada etapa, utilizando as fases MITRE ATT&CK como referência:


Reconnaissance

#attack/T1595 #attack/T1046

Host Discovery

A primeira ação para reconhecimento do alvo é testar a conectividade com ele, utilizando o comando ping. Ao enviar um pacote ICMP, é possível confirmar que a máquina alvo está acessível na rede.

No retorno, o TTL de 63 é uma indicação de que possivelmente estamos lidando com um sistema Linux. O TTL inicial para sistemas Linux geralmente é 64, e o valor observado no ping é reduzido conforme os pacotes atravessam roteadores na rede. Como o TTL está próximo de 64, é provável que o sistema alvo seja uma máquina Linux.

Network Recon

#attack/T1046

Em seguida, uma varredura de portas foi executada no alvo. Primeiro, a ferramenta naabu da Project Discovery foi utilizada para uma rápida identificação de portas TCP:

A varredura revelou apenas a porta 22 (SSH) aberta.

Uma varredura de scripts e versão com nmap foi então executada para obter mais detalhes sobre este serviço:

Uma varredura UDP foi então executada para identificar serviços adicionais:

A porta 500/UDP revelou ser um serviço IPsec/IKE (ISAKMP).


Initial Access

#attack/T1133 #attack/T1110

IKE Enumeration

O serviço IKE foi enumerado utilizando a ferramenta ike-scan para identificar a configuração do gateway VPN.

IKE Main Mode

IKEv2 Attempt

  • O resultado do Main Mode mostra um Main Mode handshake returned válido e uma proposta SA: Enc=3DES Hash=SHA1 Group=2 Auth=PSK. Isto significa que o gateway aceita pelo menos um transform e está configurado para usar Pre-Shared Key para Phase-1.

  • Os VIDs incluem uma entrada XAUTH e um VID de Dead Peer Detection — XAuth significa que pode ser necessária autenticação estendida após a PSK de grupo.

  • A tentativa IKEv2 retornou Notify 14 NO_PROPOSAL_CHOSEN — significa que as propostas não corresponderam aos transforms permitidos pelo gateway.

IKEv1 Aggressive Mode

O scan em modo Aggressive Mode foi executado para capturar o hash da PSK:

  • Em Main Mode, a troca de ID é encriptada, enquanto em Aggressive Mode, o ID e um hash da PSK são enviados em texto claro, permitindo o ataque de força bruta offline.

O ID ike@expressway.htb foi identificado, revelando o domínio do alvo. O domínio foi adicionado ao ficheiro .env e ao /etc/hosts:

Agora podemos usar o domínio para comunicar com o alvo:

Hash Cracking

#attack/T1110_002

PSK Hash Capture

O hash da PSK foi capturado utilizando o ID correto:

O hash foi extraído para um ficheiro:

PSK Cracking

O IKEv1 Aggressive Mode envia o hash da PSK antes da encriptação ser estabelecida, sendo vulnerável a ataques offline.

O hash foi crackeado utilizando o dicionário rockyou.txt:

triangle-exclamation

Finding: IKEv1 Aggressive Mode with PSK

circle-exclamation

Credenciais Descobertas

SSH Access

#attack/T1078

A credencial obtida foi utilizada para acesso SSH:

O ficheiro .env foi atualizado:

circle-check

Privilege Escalation

#attack/T1068

Com acesso inicial obtido, a análise focou-se na identificação de caminhos para escalação de privilégios.

Linux Enumeration

#attack/T1588_002 #attack/T1082

A ferramenta LinPEAS foi utilizada para realizar uma enumeração completa do sistema Linux.

1

Download da ferramenta na máquina atacante

2

Alteração do nome para um UUID aleatório e codificação em base64

3

Servidor HTTP iniciado para tornar o ficheiro acessível ao alvo

4

No alvo, o linpeas foi obtido e executado

5

Análise dos resultados

A análise dos resultados revelou os seguintes pontos de interesse:

O ficheiro linpeas foi apagado utilizando shred para cobrir rastros:

CVE-2025-32463 Analysis

#attack/T1548_003

A enumeração revelou um binário sudo num diretório local com uma versão vulnerável:

A pesquisa de vulnerabilidades relacionadas com esta versão do sudo identificou o CVE-2025-32463:

  • https://nvd.nist.gov/vuln/detail/cve-2025-32463

Sudo before 1.9.17p1 allows local users to obtain root access because /etc/nsswitch.conf from a user-controlled directory is used with the --chroot option.

A ferramenta vulnx da Project Discovery foi utilizada para obter detalhes adicionais:

CVE-2025-32463 Exploitation

#attack/T1068

Um PoC público do CVE-2025-32463 foi identificado no GitHub:

  • https://raw.githubusercontent.com/kh4sh3i/CVE-2025-32463/refs/heads/main/exploit.sh

O exploit foi transferido para o diretório /tmp do alvo:

O exploit foi tornado executável:

O comando id confirmou o utilizador atual:

O exploit foi executado, resultando em acesso root:

triangle-exclamation

Finding: Sudo Local Privilege Escalation (CVE-2025-32463)

Com acesso root, foi possível aceder ao ficheiro shadow e às flags do CTF:

O ficheiro do exploit foi apagado:

circle-check

Persistence

#attack/T1098

Para manter acesso persistente ao alvo, uma chave SSH foi adicionada ao authorized_keys do root.

1

Criação de chave SSH na máquina atacante

2

Obtenção da chave pública

3

Adição da chave pública ao authorized_keys do root

4

Acesso SSH persistente

Atualizado