Vulnerabilities > CVE-2008-0871 - Improper Restriction of Operations Within the Bounds of A Memory Buffer vulnerability in NOW SMS MMS Gateway

047910
CVSS 6.8 - MEDIUM
Attack vector
NETWORK
Attack complexity
MEDIUM
Privileges required
NONE
Confidentiality impact
PARTIAL
Integrity impact
PARTIAL
Availability impact
PARTIAL
network
now
CWE-119
nessus
exploit available
metasploit

Summary

Multiple stack-based buffer overflows in Now SMS/MMS Gateway 2007.06.27 and earlier allow remote attackers to execute arbitrary code via a (1) long password in an Authorization header to the HTTP service or a (2) large packet to the SMPP service.

Vulnerable Configurations

Part Description Count
Application
Now
1

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Buffer Overflow via Environment Variables
    This attack pattern involves causing a buffer overflow through manipulation of environment variables. Once the attacker finds that they can modify an environment variable, they may try to overflow associated buffers. This attack leverages implicit trust often placed in environment variables.
  • Overflow Buffers
    Buffer Overflow attacks target improper or missing bounds checking on buffer operations, typically triggered by input injected by an attacker. As a consequence, an attacker is able to write past the boundaries of allocated buffer regions in memory, causing a program crash or potentially redirection of execution as per the attackers' choice.
  • Client-side Injection-induced Buffer Overflow
    This type of attack exploits a buffer overflow vulnerability in targeted client software through injection of malicious content from a custom-built hostile service.
  • Filter Failure through Buffer Overflow
    In this attack, the idea is to cause an active filter to fail by causing an oversized transaction. An attacker may try to feed overly long input strings to the program in an attempt to overwhelm the filter (by causing a buffer overflow) and hoping that the filter does not fail securely (i.e. the user input is let into the system unfiltered).
  • MIME Conversion
    An attacker exploits a weakness in the MIME conversion routine to cause a buffer overflow and gain control over the mail server machine. The MIME system is designed to allow various different information formats to be interpreted and sent via e-mail. Attack points exist when data are converted to MIME compatible format and back.

Exploit-Db

  • descriptionNow SMS/MMS Gateway Buffer Overflow. CVE-2008-0871. Remote exploit for windows platform
    idEDB-ID:16779
    last seen2016-02-02
    modified2010-05-09
    published2010-05-09
    reportermetasploit
    sourcehttps://www.exploit-db.com/download/16779/
    titleNow SMS/Mms Gateway Buffer Overflow
  • descriptionNow SMS/MMS Gateway 5.5 Remote Buffer Overflow Exploit. CVE-2008-0871. Remote exploit for windows platform
    fileexploits/windows/remote/5695.cpp
    idEDB-ID:5695
    last seen2016-01-31
    modified2008-05-29
    platformwindows
    port8800
    published2008-05-29
    reporterHeretic2
    sourcehttps://www.exploit-db.com/download/5695/
    titleNow SMS/Mms Gateway 5.5 - Remote Buffer Overflow Exploit
    typeremote

Metasploit

descriptionThis module exploits a stack buffer overflow in Now SMS/MMS Gateway v2007.06.27. By sending a specially crafted GET request, an attacker may be able to execute arbitrary code.
idMSF:EXPLOIT/WINDOWS/HTTP/NOWSMS
last seen2020-03-23
modified2017-07-24
published2008-08-11
referenceshttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0871
reporterRapid7
sourcehttps://github.com/rapid7/metasploit-framework/blob/master//modules/exploits/windows/http/nowsms.rb
titleNow SMS/MMS Gateway Buffer Overflow

Nessus

NASL familyWindows
NASL idNOWSMS_2008_02_22.NASL
descriptionThe remote host is running Now SMS/MMS Gateway, a tool for connecting to SMS and/or MMS messaging providers and managing GSM modems. The web interface component of the version of Now SMS/MMS Gateway installed on the remote host contains a stack-based buffer overflow that can be triggered using a specially crafted HTTP Authorization request header. An unauthenticated, remote attacker can leverage this issue to crash the affected service or to execute arbitrary code on the affected host subject to the privileges under which the service operates, SYSTEM by default. In addition, there is similar buffer overflow in the application
last seen2020-06-01
modified2020-06-02
plugin id32481
published2008-06-02
reporterThis script is Copyright (C) 2008-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/32481
titleNow SMS/MMS Gateway < 2008.02.22 Multiple Remote Overflows
code
#
# (C) Tenable Network Security, Inc.
#



include("compat.inc");

if (description)
{
  script_id(32481);
  script_version("1.16");
 script_cvs_date("Date: 2018/11/15 20:50:27");

  script_cve_id("CVE-2008-0871");
  script_bugtraq_id(27896);
  script_xref(name:"EDB-ID", value:"5695");
  script_xref(name:"Secunia", value:"29003");

  script_name(english:"Now SMS/MMS Gateway < 2008.02.22 Multiple Remote Overflows");
  script_summary(english:"Checks version of mmsc.exe");

 script_set_attribute(attribute:"synopsis", value:
"A remote Windows host contains a program that is affected by multiple
buffer overflow vulnerabilities.");
 script_set_attribute(attribute:"description", value:
"The remote host is running Now SMS/MMS Gateway, a tool for connecting
to SMS and/or MMS messaging providers and managing GSM modems.

The web interface component of the version of Now SMS/MMS Gateway
installed on the remote host contains a stack-based buffer overflow
that can be triggered using a specially crafted HTTP Authorization
request header. An unauthenticated, remote attacker can leverage this
issue to crash the affected service or to execute arbitrary code on
the affected host subject to the privileges under which the service
operates, SYSTEM by default.

In addition, there is similar buffer overflow in the application's
SMPP server, which allocates a stack buffer of 4 KB for incoming
packets but fails to check their actual size. By default, though, this
service is not enabled.");
 script_set_attribute(attribute:"see_also", value:"http://aluigi.altervista.org/adv/nowsmsz-adv.txt");
 script_set_attribute(attribute:"see_also", value:"https://support.nowsms.com/discus/messages/53/23641.html" );
 script_set_attribute(attribute:"see_also", value:"http://blog.nowsms.com/2008/02/nowsms-2008-and-important-security.html" );
 script_set_attribute(attribute:"solution", value:"Upgrade to Now SMS/MMS Gateway version 2008.02.22 or later.");
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C");
  script_set_cvss_temporal_vector("CVSS2#E:F/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
  script_set_attribute(attribute:"exploit_available", value:"true");
 script_set_attribute(attribute:"exploit_framework_core", value:"true");
 script_set_attribute(attribute:"metasploit_name", value:'Now SMS/MMS Gateway Buffer Overflow');
 script_set_attribute(attribute:"exploit_framework_metasploit", value:"true");
 script_cwe_id(119);

 script_set_attribute(attribute:"plugin_publication_date", value:"2008/06/02");

script_set_attribute(attribute:"plugin_type", value:"local");
script_end_attributes();

  script_category(ACT_GATHER_INFO);
  script_family(english:"Windows");
  script_copyright(english:"This script is Copyright (C) 2008-2018 Tenable Network Security, Inc.");
  script_dependencies("smb_hotfixes.nasl");
  script_require_keys("SMB/Registry/Enumerated");
  script_require_ports(139, 445);
  exit(0);
}

#

include("audit.inc");
include("global_settings.inc");
include("smb_func.inc");

if (!get_kb_item("SMB/Registry/Enumerated")) exit(1, "KB 'SMB/Registry/Enumerated' not set to TRUE.");


# Connect to the appropriate share.
port    =  kb_smb_transport();
login   =  kb_smb_login();
pass    =  kb_smb_password();
domain  =  kb_smb_domain();

if(! smb_session_init()) audit(AUDIT_FN_FAIL, 'smb_session_init');

rc = NetUseAdd(login:login, password:pass, domain:domain, share:"IPC$");
if (rc != 1)
{
  NetUseDel();
  audit(AUDIT_SHARE_FAIL,"IPC$");
}


# Connect to remote registry.
hklm = RegConnectRegistry(hkey:HKEY_LOCAL_MACHINE);
if (isnull(hklm))
{
  NetUseDel();
  audit(AUDIT_REG_FAIL);
}


# Determine where it's installed.
path = NULL;

key = "SOFTWARE\Classes\SOFTWARE\NowSMS\NowSMS";
key_h = RegOpenKey(handle:hklm, key:key, mode:MAXIMUM_ALLOWED);
if (!isnull(key_h))
{
  value = RegQueryValue(handle:key_h, item:"InstallDirectory");
  if (!isnull(value)) path = value[1];

  RegCloseKey(handle:key_h);
}
RegCloseKey(handle:hklm);
if (isnull(path))
{
  RegCloseKey(handle:hklm);
  NetUseDel();
  exit(0);
}


# Grab the version from mmsc.exe.
share = ereg_replace(pattern:"^([A-Za-z]):.*", replace:"\1$", string:path);
exe =  ereg_replace(pattern:"^[A-Za-z]:(.*)", replace:"\1\mmsc.exe", string:path);
NetUseDel(close:FALSE);

rc = NetUseAdd(login:login, password:pass, domain:domain, share:share);
if (rc != 1)
{
  NetUseDel();
  audit(AUDIT_SHARE_FAIL,share);
}

fh = CreateFile(
  file:exe,
  desired_access:GENERIC_READ,
  file_attributes:FILE_ATTRIBUTE_NORMAL,
  share_mode:FILE_SHARE_READ,
  create_disposition:OPEN_EXISTING
);
version = NULL;
if (!isnull(fh))
{
  fsize = GetFileSize(handle:fh);
  if (fsize < 250000) off = 0;
  else off = fsize - 250000;

  while (fsize > 0 && off <= fsize && isnull(version))
  {
    data = ReadFile(handle:fh, length:16384, offset:off);
    if (strlen(data) == 0) break;
    data = str_replace(find:raw_string(0), replace:"", string:data);

    while (strlen(data) && "Now SMS/MMS Gateway v" >< data)
    {
      data = strstr(data, "Now SMS/MMS Gateway v") - "Now SMS/MMS Gateway v";
      blob = data - strstr(data, '\r\n');

      pat = "^([12][0-9]{3}\.[01][0-9]\.[0-3][0-9])$";
      if (ereg(pattern:pat, string:blob))
      {
        version = ereg_replace(pattern:pat, replace:"\1", string:blob);
      }
      if (version) break;
    }
    off += 16383;
  }
  CloseFile(handle:fh);
}
NetUseDel();


# Check the version number.
if (!isnull(version))
{
  ver = split(version, sep:'.', keep:FALSE);
  for (i=0; i<max_index(ver); i++)
    ver[i] = int(ver[i]);

  fix = split("2008.02.22", sep:'.', keep:FALSE);
  for (i=0; i<max_index(fix); i++)
    fix[i] = int(fix[i]);

  for (i=0; i<max_index(ver); i++)
    if ((ver[i] < fix[i]))
    {
      if (report_verbosity)
      {
        report = string(
          "\n",
          "Now SMS/MMS Gateway v", version, " is installed under :\n",
          "\n",
          "  ", path, "\n"
        );
        security_hole(port:port, extra:report);
      }
      else security_hole(port);
      break;
    }
    else if (ver[i] > fix[i])
      break;
}

Packetstorm

data sourcehttps://packetstormsecurity.com/files/download/83180/nowsms.rb.txt
idPACKETSTORM:83180
last seen2016-12-05
published2009-11-26
reporterMC
sourcehttps://packetstormsecurity.com/files/83180/Now-SMS-MMS-Gateway-Buffer-Overflow.html
titleNow SMS/MMS Gateway Buffer Overflow

Seebug

bulletinFamilyexploit
descriptionBUGTRAQ ID: 27896 CVE(CAN) ID: CVE-2008-0871 Now SMS/MMS Gateway(NowSMS)是一套短信和彩信内容交付解决方案。 NowSMS监听在8800端口上的Web接口允许用户使用网关发送各种类型的消息,该接口上用于处理HTTP Authorization参数中base64口令的函数存在栈溢出漏洞。如果用户发送了超过256字节的报文的话,就可以触发这个溢出,导致执行任意指令。 NowSMS使用4K字节的栈缓冲区容纳入站的SMPP报文。由于对报文的真实大小(最大可达0xffffffff字节)缺少检查,远程攻击者可以通过发送超长报文触发栈溢出,导致执行任意指令。 SMPP服务器不是默认启用的,且没有默认的监听端口。 NowMobile.com Now SMS/MMS Gateway 2007.6.27 NowMobile.com ------------- 目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: <a href=http://www.nowsms.com/ target=_blank>http://www.nowsms.com/</a>
idSSV:3353
last seen2017-11-19
modified2008-06-01
published2008-06-01
reporterRoot
sourcehttps://www.seebug.org/vuldb/ssvid-3353
titleNow SMS/MMS Gateway HTTP/SMPP请求栈溢出漏洞