Cerberus: surge un nuevo Android 'Banking Malware For Rent'



En junio de 2019, los analistas de ThreatFabric encontraron un nuevo malware para Android, denominado "Cerberus", que se alquilaba en foros clandestinos. Sus autores afirman que se utilizó para operaciones privadas durante los dos años anteriores al inicio del alquiler. También afirman que el código está escrito desde cero y no está utilizando partes de otros troyanos bancarios existentes, a diferencia de muchos otros troyanos que se basan completamente en la fuente de otro troyano (como el código fuente filtrado de Anubis que ahora se revende) o al menos tomar prestadas partes de otros troyanos.

Los atacantes son unos amantes de las redes sociales, y publican todas las "promociones" y características de su malware a través de Twitter. Esto igual debe de deberse a que el grupo no tiene mucha experiencia en este tipo de delitos y quieren figurar a la hora de posicionarse como atacantes bancarios.


Los creadores del malware utilizaron un método bastante novedoso a la hora de realizar la evasión de la detección. Estos monitorean el contador de pasos del dispositivo, por lo que si este aumenta, estaríamos en un dispositivo real, con una persona real que eventualmente tiene que moverse con su terminal móvil. Si el podómetro no aumenta sus contadores, los atacantes piensan que podría tratarse de un ambiente tipo Sandbox lo que inhabilitaba la activación del troyano bancario.

this.sensorService.registerListener (this, localSensor, 3); 
if (localSensor.getType () == 1) { 
    float [] values ​​= sensorEvent.values; 
    flotante Gx = valores [0]; 
    flotador Gy = valores [1]; 
    flotante Gz = valores [2]; 
    marca de tiempo larga = System.curTimeMillis ();
    if (marca de tiempo - this.previousTimestamp> 100L) { 
        intervalo largo = marca de tiempo - this.previousTimestamp; 
        this.previousTimestamp = marca de tiempo; 
        if (Math.abs (Gx + Gy + Gz - this.curGx - this.curGy - this.curGz)  
            / (((float) intervalo)) * 10000f> 600f) { 
            this.increaseStepCount (); 
        } 
  
        this.curGx = Gx; 
        this.curGy = Gy; 
        this.curGz = Gz;
    } 

... 
if (Integer.parseInt ( 
    this.utils.readConfigString (arg7, this.constants.step)) <this.constants.limit) { 
    goto skip; 
}
El malware como todo troyano tiene las mismas capacidades que el resto de los troyanos:


Superposición: dinámica (inyecciones locales obtenidas de C2)
Keylogging
Recolección de SMS: listado de SMS
Recolección de SMS: reenvío de SMS
Colección de información del dispositivo
Colección de la lista de contactos
Listado de aplicaciones
Recolección de ubicación
Superposición: actualización de la lista de objetivos
SMS: envío
Llamadas: solicitud de USSD
Llamadas: desvío de llamadas
Acciones remotas: instalación de aplicaciones
Acciones remotas: inicio de la aplicación
Acciones remotas: eliminación de aplicaciones
Acciones remotas: mostrar páginas web arbitrarias
Acciones remotas: bloqueo de pantalla
Notificaciones: notificaciones push
Resiliencia C2: lista auxiliar C2
Autoprotección: Ocultar el ícono de la aplicación
Autoprotección: prevención de eliminación
Autoprotección: detección de emulación
Arquitectura: modular



Una vez infectado, Cerberus primero oculta su icono del cajón de la aplicación y luego solicita el permiso de accesibilidad haciéndose pasar por Flash Player Service. Si se otorga, el malware registra automáticamente el dispositivo comprometido en su servidor de comando y control, lo que permite al comprador / atacante controlar el dispositivo de forma remota.

Para robar los números de tarjeta de crédito de los usuarios, las credenciales bancarias y las contraseñas para otras cuentas en línea, Cerberus permite a los atacantes lanzar ataques de superposición de pantalla desde su tablero remoto.