Issabel介绍:
Issabel 是一个开源通信系统,它结合了一套强大的工具和功能来管理和控制电话系统。它广泛用于实施 PBX(专用交换机)解决方案,使组织能够使用 VoIP(互联网协议语音)技术管理内部和外部电话呼叫。Issabel 提供用户友好的界面和各种功能,包括语音邮件、呼叫路由、会议等,使其成为寻求高效通信解决方案的各种规模企业的热门选择。
漏洞概述:
PBX 4.0.0 中发现了一个严重漏洞,具体存在于 Asterisk-Cli 组件对文件 /index.php?menu=asterisk_cli 的处理中。此漏洞被标识为 CVE-2024-0986,被评为严重,CVSS 评分为 9.8,反映出其对受影响系统的巨大影响。此漏洞源于对 Command 参数的操纵,可利用该参数执行 OS 命令注入。这意味着攻击者可以远程注入并执行托管 Issabel PBX 系统的服务器上的任意命令。此漏洞的利用方式已被公开披露,增加了未修补系统遭受攻击的风险。
影响版本:
Issabel PBX 4.0.0
FOFA:
title="issabel"
搭建测试环境:
# Install Issabel on Debian (Kali) curl http://repo.issabel.org/issabel5-netinstall.sh | bash # Red-Hat-based distros, Fedora, CentOS, SUSE etc: # yum update # yum -y install wget # wget -O - http://repo.issabel.org/issabel4-netinstall.sh | bash
但是安装的是老版本,所以使用iso 进行安装,下载地址如下。
https://sourceforge.net/projects/issabelpbx/files/Issabel%204/issabel4-NIGHTLY-AST18-USB-DVD-x86_64-20211207.iso/download
和安装Ubuntu 差不多。这里只放几张关键图。
然后启动虚拟机
回车进行安装
需要设置的设置好之后,点击开始安装
设置下密码最好root 用户和普通用户都设置一个,这里是 root or test/123456
安装完成之后,需要设置数据库连接
这里密码都是123456
设置语言
等待初始化
系统登录后如下:
Issabel 登录以及登录后如下:
漏洞复现:
整个漏洞复现参考依据来源于原作者,其漏洞分析地址如下:
https://www.vicarius.io/vsociety/posts/issabel-authenticated-remote-code-execution-cve-2024-0986
具体来讲,漏洞出在文件 /index.php?menu=asterisk_cli 中,其中对 Command 参数的不当处理可能导致 OS 命令注入。让我们先看看 index.php 的代码。
``` <?php require_once "libs/paloSantoForm.class.php"; function _moduleContent(&$smarty, $module_name) { //include module files require_once "modules/$module_name/configs/default.conf.php"; load_language_module($module_name); //global variables global $arrConf; global $arrConfModule; $arrConf = array_merge($arrConf,$arrConfModule); //folder path for custom templates $base_dir = dirname($_SERVER['SCRIPT_FILENAME']); $templates_dir = (isset($arrConf['templates_dir'])) ? $arrConf['templates_dir'] : 'themes'; $local_templates_dir = "$base_dir/modules/$module_name/".$templates_dir.'/'.$arrConf['theme']; $txtCommand = isset($_POST['txtCommand'])? trim($_POST['txtCommand']) : ''; $oForm = new paloForm($smarty, array()); $smarty->assign(array( 'asterisk' => _tr('Asterisk CLI'), 'command' => _tr('Command'), 'txtCommand'=> htmlspecialchars($txtCommand), 'execute' => _tr('Execute'), 'icon' => "modules/$module_name/images/pbx_tools_asterisk_cli.png", )); $result = ""; if (!empty($txtCommand)) { $output = $retval = NULL; $ipaddr = $_SERVER['REMOTE_ADDR']; $user = isset($_SESSION['issabel_user']) ? $_SESSION['issabel_user'] : 'unknown'; if(preg_match("/(originate|system)/i",$txtCommand)) { writeLOG("audit.log", sprintf('ASTCLI %s Command denied: %s from %s.',$user,escapeshellarg($txtCommand),$ipaddr)); $result = "Command denied"; } else { // OS level execution HERE exec("/usr/sbin/asterisk -rnx ".escapeshellarg($txtCommand), $output, $retval); writeLOG("audit.log", sprintf('ASTCLI %s: %s from %s.',$user,escapeshellarg($txtCommand),$ipaddr)); $result = implode("\n", array_map('htmlspecialchars', $output)); } } if ($result == "") $result = "&nbsp;"; $smarty->assign("RESPUESTA_SHELL", $result); return $oForm->fetchForm("$local_templates_dir/new.tpl", _tr('Asterisk-Cli'), $_POST); } ?> ```
在提供的 PHP 代码中,“txtCommand”从 HTML 表单捕获用户输入并通过 Asterisk CLI 执行该输入。此输入将传递给“exec”函数,从而导致 OS 命令注入。如果攻击者将恶意命令注入“txtCommand”,它可以在服务器上执行任意命令,从而导致远程代码执行 (RCE)。
在漏洞脚本中注
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)