Mostrando entradas con la etiqueta forense. Mostrar todas las entradas
Mostrando entradas con la etiqueta forense. Mostrar todas las entradas

23 junio 2016

Curso PRESENCIAL de Análisis Forense de Dispositivos Móviles





Una de las mayores demandas que tengo desde el punto de vista de peritaje y análisis forense, se centra en la actividad de smartphones. Os pongo casos reales: “mi marido me espía y creo que me ha metido un troyano en el móvil”, “necesitamos extraer la actividad de whatsapp del empleado X en el teléfono de empresa”, “la custodia de mis hijos depende de que se puedan evidenciar las amenazas que he recibido por parte de mi ex en el teléfono”, “a mi hija la acosaban por el chat de instagram”, etc,… 

Al final, el smartphone es uno de más de la familia, y como pongo de ejemplo muchas veces: se nos puede olvidar el tupper con la comida en casa, y lo solucionamos comiendo fuera y cenando en casa el tupper, pero si se nos olvida el móvil, volvemos a por él… y debido a la alta interacción (e incluso dependencia) que tenemos con él, es por lo que el dispositivo es portador de tantísimas evidencias, que pueden suponer que la moneda caiga de nuestro lado, en un proceso judicial.

Por otra parte, en Securízame, como muchos sabéis, este año hemos comenzado a impartir cursos de formación presenciales. Empecé con uno de Hardening de Sistemas GNU/Linux y ahora estamos terminando una serie de cursos de Python (para sysadmins, avanzado y para pentesters)



Con la idea de satisfacer la demanda que soléis sugerirme sobre formación, es que el viernes 8 y el sábado 9 de Julio, voy a impartir personalmente un curso presencial de Análisis Forense de Dispositivos Móviles. Debido a la cantidad de temario que quiero cubrir, es por lo que tendrá 15 horas de duración reales, comenzando el viernes por la tarde (de 16:00 a 21:30), con un descanso a media tarde, y el sábado en modo intensivo desde las 9 AM a 21:00 PM. 

La idea es que se pierda el menor tiempo posible entre descansos y comida, por lo que TODO estará incluido en el planning: Café y refrescos para los descansos, y pizza para comer. Sólo tienes que preocuparte de ir con ganas de aprender.

Os dejo bajo estas líneas, en modo muy global, el temario que quiero cubrir:


Análisis Forense en Dispositivos Móviles

- Introducción y estándares

- Fases de peritaje de Dispositivos móviles

- Estructura de laboratorio recomendada para análisis forense de dispositivos móviles

- Análisis forense de IOS

    + Modelo de seguridad de IOS

    + IOS Internals

    + Estructuras de datos

    + Fuentes de adquisición de datos:

         - Dispositivo físico

         - Backup

         - iCloud

    + Herramientas libres de análisis de IOS

    + Artifacts de aplicaciones de usuario

- Análisis forense de Android

    + Viaje al interior de Android

    + Estructuras de datos

    + Acceso a sistemas de ficheros

    + Carving de datos

    + Los Logs en Android

    + Análisis de aplicaciones APK

    + Artifacts de aplicaciones de usuario

- Utilización de herramientas automatizadas vs. manual

    + Forense con Nowsecure Viaextract 

    + Forense con Oxygen


Si estás interesado, que sepas que a día de hoy nos quedan 8 plazas disponibles, por lo que te sugiero que no te lo pienses mucho y te registres en el siguiente enlace: 



Leer más...

15 abril 2016

Podcasts/Hangouts sobre informática forense y peritaje

Esta semana tuve la oportunidad de participar en dos sesiones de podcast usando Hangouts, en los que debatimos sobre diversos temas relacionados con la análisis forense y peritaje.

Uno de ellos, fue en el popular "Palabra de Hacker", en el que tiempo atrás me entrevistó Yolanda Corral. La del martes fue una sesión bastante divertida, en la que participamos el fiscal Jorge Bermudez, mi compañero de ANCITE José Aurelio García Mateos (AKA "peritolegal" para los amigos), la inspectora de policía Silvia Barrera, la abogada penalista Ruth Sala y el que escribe, Lorenzo Martínez.

Fundamentalmente, Yolanda Corral, moderó con una profesionalidad increíble, un debate que tuvo momentos divertidos (a tenor de las impresiones que iba viendo en el hashtag #palabradehacker), mezclados con los siempre diferentes puntos de vista entre los más profesionales más cercanos al mundo técnico y los relacionados con el mundo legal.

Varios me habéis preguntado por qué casi todos llevábamos una camiseta de algún superhéroe (o incluso un disfraz completo). La causa es que, de forma totalmente espontánea, Jorge apareció con una camiseta de Batman. Acto seguido, Silvia se ausentó y volvió con una de Superman,... me acordé que tenía una del Capitán América, así que fuí rápido a por ella. Y lo que nadie esperábamos es que Ruth apareciese con un disfraz de Spiderman. 

Podéis ver el debate, en el video que os dejo bajo estas líneas.




El segundo podcast sobre informática forense, fue para H4ckm33ts, organizado por mi buen amigo y excelente profesional del peritaje forense y de la seguridad en general, Javier Soria Pastor.

En este podcast, tuve el placer de participar junto a otro buen amigo, Cecilio Sanz, uno de los organizadores de Hackron, el congreso de seguridad de Canarias, uno de mis favoritos en España, CEO de la compañía de seguridad Alisios Informáticos y compañero perito en ANCITE.

Javier nos había preparado un set de preguntas, con un enfoque más académico y con un objetivo más de divulgación que el anterior, con las que los tres nos lo pasamos genial. Repasamos diferentes conceptos de peritaje forense, recordamos viejas historias del abuelo cebolleta en vidas anteriores... y quedamos en que el siguiente encuentro para hablar de forense fuese rodeados de unas cervezas.


Hasta ahora no había tenido la oportunidad de participar en este tipo de sesiones, y la verdad es que me ha parecido muy interesante y ameno el formato. 
Espero que os gusten!
Leer más...

09 marzo 2016

Curso: Análisis forense en profundidad V2

Uno de los aspectos más relevantes a la hora de formarse, es el deseo de no quedarse en el punto en el que termina un curso y saber cómo actualizar periódicamente el tema sobre el que has recibido formación.

Por eso, Securízame ha actualizado la saga de cursos relacionados con 'Forense en profundidad' con un montón de nuevas áreas y nuevos profesores.

En la versión 2 del curso se hablará de:

Módulo I - El laboratorio forense, Forense en Linux 3.X y Forense en Docker - 8 horas- 

Profesores: Lorenzo Martínez y José Antonio Guasch

Módulo II - Forense en routers - 8 horas- 

Profesor: Sergi Álvarez (Pancake)

Módulo III – Forense de Navegadores - 8 horas - 

Profesor: José Antonio Guasch
Módulo IV – Gestión y respuesta ante incidentes - 8 horas - 

Profesor: Pedro Sánchez

Módulo V - Backdooring - 8 horas - 

Profesor: Yago Jesus

Módulo VI: Forense en AWS, GCE y Azure- 8 horas - 

Profesor: Toni de la Fuente

Módulo VII - Hardware forensics – 8 horas - 

Profesor: Pedro Sánchez

Módulo VIII - Análisis Forense Windows 10 y aplicaciones Metro - 8 horas - 

Profesor: Juan Garrido

Como veis, el curso se actualiza con nuevos conceptos que complementan la versión V1 impartida tiempo atrás.

Si estás interesado, puedes consultar el temario y apuntarte ya mismo porque el curso empieza el 11 de Abril.

Leer más...

23 noviembre 2015

Ya está disponible Dragonheart, la tercera edición de Pengowin





Fue hace un par de años cuando Óscar Banchiero se propuso publicar online algo que ya solíamos hacer antiguamente en CDs, discos duros de red o FTPs compartidos: recopilar diferentes herramientas libres de seguridad informática, para sistema operativo Windows, para poder usarlas sin tener que ir saltando de web en web. Así dio lugar el proyecto Pengowin

En la misma línea, el propio Banchiero lanzó Pengodroid, consistente en herramientas relacionadas con sistema operativo Android, tanto para securizarlo, hacer auditorías y también para análisis forense

En su día ya publicamos desde Security By Default sobre la existencia, tanto de Pengowin como de Pengodroid.

En esta ocasión, nos alegra informar a nuestros lectores que ya está a vuestra disposición la tercera versión de Pengowin, con codename "Dragonheart". Esta vez, el recopilatorio de herramientas imprescindibles en varias ramas de seguridad informática, están bastante actualizadas, contando incluso con NMap 7, aunque echo en falta la versión 2.0.0 de Wireshark, también recientemente publicada.

Además, hay unas 50 herramientas discontinuadas, pero que resultan de utilidad igualmente. También como novedad, se han añadido algunos tutoriales de uso de herramientas, que era algo que se había sugerido al mantenedor del proyecto.

Os dejo el listado de versiones de las herramientas incluídas en Pengowin 3, así como los enlaces para descarga (puesto que a la hora de edición de este post, aún no está la web actualizada con los nuevos enlaces)
   
exiftool-10.04
XnView 2.34
MobaXterm 8.2 (Installer & Portable)
SecureCrt 6.1 Portable (7.3 en la web)
UltraVNC 1.2.08
Putty 0.65
xtreme GPU BruteForce 3.2 & Hash Manager 1.2.3
KeePass 1.29
GPG4Win 2.2.6
LaZagne 1.1
Rainbow Crack 1.6.1 + 64 Bits
WindowsPasswordKracker 3.1
Who´s On My Wifi 3.0.3
Aircrack-ng-1.2RC2
CommViewWifi 7.1
Chanalyzer 5.7
Vistumbler 10.6
Wireless Mon 4.0 1009
Acrylic WiFi Free 3.0.5.770
RDG MALWARE DETECTOR BETA 7
TDSKILLER (Sep 2015)
FOCA PRO Versión final
AdwCleaner v5.0.1.5
aswMBR 1.0.1.2290
AVG FREE 2015
CCLEANER 5.11
FortiClient Antivirus 5.4
HitmanPro 3.7.10.250 + 64 Bits
mbam-setup-2.2.0.1024
mbar-1.0.9.3.1001
Snort 2.9.7.6
Spybot 2.4.40
Trojan Remover 6.9.3.2941
SysInspector versión 1.2.049.0
rkill 2.8.2.0
RDG Packer Detector v0.7.5 2015
Winsyslog 13.1
Syslog Watcher 4.7.6
Fine Connection Monitor 2015.8
Prtg
Advance Serial Port Monitor 4.4.5
Advanced Serial Data Logger 4.1.11 (RS232)
NMAP 6.49 Beta5 + Vulscan + NMAP 7!!!!!
Essential NetTools 4.4
Technitium MAC Address Changer 6.0.6
LanState 7.8
SoftPerfect Network Scanner 6.0.8
Advanced Ip Scanner 2.4.2601
Hyena 11.5.4E
GoogleHacksSetup1.6.0 (Prox 2.0)
Maltego = MaltegoCESetup.v3.6.0.6640
Network Miner 1.6.1
Wireshark 1.12.8 & Portable + 64 Bits
BurpSuite 1.6.30
Zap Proxy 2.4.2
HTTrack Website Copier 3.48-21 + 64 Bits
SpiderFoot 2.6.0
Ostinato 0.7.1
Fiddler Net 2 2.6.1.4
Packet Sender Version & Portable 2015-05-27
Firefox Autocomplete Spy v1.0
Password Sniffer Console v2.0
USBPCAP Sniffer1.0.0.7
Packet Crafter
Windump 3.9.5
WinPCap 4.1.3
Edraw 7.9 (Excelente para armar dibujos de topologías, entre otros)
Gimp 2.8.14 (Editor de imagenes)
Linux Live Usb Creator 2.9.4
CCleaner 5.11
FileZilla_3.14.1
TEXT Crawler 3.0.3 (Buscador de palabras en archivos y carpetas)
Fileseek 4.5
Universal USB Installer 1.9.6.2
WinSetupFromUSB 1.6 Beta 2
rufus-2.5 & Portable
Daemon Tools Lite v10.1.0
IsoBuster 3.6
Notepad ++ 6.8.6
Unetbootin 6.13
UltraIso  9.6.5.3237
Joomla 3.4.5
Xampp 5.6.14.0
VirtualBox 5.0.8
VMware-player 6.0.7
WebCruiserPro 3.5.3 Free
GFI LanGuard 2015
ParameterFuzz 2.0
Nessus 6.5.2 XP-2003-7(32Bits) And W2008 (64Bits)
Acunnetix Vulnerability Scanner & report Viewer
EVIL FOCA 0.1.4.0
OSForensics 3.2.1003
Recuva 1.52.1086
KillDisk Windows Suite v10
Formateo SD 9.1
Eraser 6.2.0.2970
FTK Imager 3.4.0.5 & Imager Lite
Process Hacker 2.36 & Portable
MailViewer
System Ninja 3.1.11
Autopsy 3.1.3 32 bits
Wipe 2015.11
UltraCompare v15.10
HardWipe 5.0.9 Portable 64 Bits
Volatility 2.4
WINHEX 18.5
DumpIt
Redline 1.14
WinMerge 2.14.0
Mount Image Pro v6.1.3.1601
Sysinternals 2015 (October)
Nirsoft Package 1.19.57
Proxpn 4.2.2
OWASP Mantra 0.92 (web en mantenimiento)
OPENVPN 2.3.1001 + 64 Bits
Iron Portable 45.0.2400.0
Spotflux Proxy
TOR 5.0.3
ProxyCap 5.28

Los enlaces para descargar Pengowin 3, desde Mega:


La contraseña para descomprimir los ficheros es "pengowin2015" (sin comillas) 

Si tenéis cualquier duda o problema con los ficheros, así como cualquier sugerencia o invitar a unas cervezas a Óscar Banchiero por pegarse el trabajazo de hacer este recopilatorio, podéis hacerlo en banchiero@pengowin.com.ar

Ya sabéis, si os resistís a montar Kali para vuestras auditorías y seguís prefiriendo usar el sistema operativo de Redmond, Pengowin es un muy buen punto de entrada para descargar muchas y variadas herramientas de seguridad.

Leer más...

18 junio 2015

Análisis de un Ransomware de Cifrado

Ilustración gracias a la cortesía de Alejandro Cuenca. Haga clic sobre la imagen para ampliar
Ilustración gracias a la cortesía de Alejandro Cuenca. Haga clic sobre la imagen para ampliar.

El Ransomware es una amenaza digital que está en pleno apogeo, causando estragos por todo el mundo.

En Agosto de 2014 se dio a conocer un portal: https://www.decryptcryptolocker.com/ puesto a disposición del público gracias a investigadores de compañías de seguridad como Fox-IT y FireEye, donde se podían recuperar los datos cifrados por CryptoLocker, tal y como podemos leer en la siguiente noticia de la BBC:
http://www.bbc.com/news/technology-28661463

La información obtenida de la operación llevada a cabo por los investigadores dio a conocer que, en menos de un año, estos ciber-criminales habían llegado a infectar a unos 500.000 usuarios con esta variante de ransomware, siendo aproximadamente el 1,3% de los afectados los que habrían pagado los 400$ (USD) solicitados como rescate, para recuperar los ficheros cifrados. Se estimaron sus beneficios por ese periodo y para esa única variante, unos 3 millones de dólares estadounidenses.
Por su parte Dell Secure Works, publicaría la distribución geográfica de las direcciones IPs afectadas por CryptoLocker entre Octubre y Noviembre de 2013:
Figure 14. Global distribution of CryptoLocker infections between October 22 and November 1, 2013. (Source: Dell SecureWorks)
Imagen gracias a Dell SecureWorks

Pretendemos con la presente publicación dar a conocer el funcionamiento de estas amenazas, al menos en términos básicos, analizando su comportamiento durante una infección, y dando a conocer los mecanismos de análisis utilizados que podrán ser empleados por otros investigadores o analistas de malware.

¿Qué es el RansomWare?

Nos apoyaremos en la definición que da el NIST en su informe sobre el malware de Junio de 2011:

The use of malware to block access to computers or data until a payment is made, also continues to be used for extortion purposes

Que con nuestras palabras podríamos describir como un software (o aplicación informática) diseñado con fines maliciosos (es decir, un: malware), que bloquea el acceso a equipos informáticos o a los datos, hasta que se recibe un pago que se solicita como rescate.

En el caso de los conocidos como ransomware de cifrado, la estrategia utilizada por los criminales es la de cifrar la información a la que tiene acceso los equipos infectados (incluyendo unidades de disco duro, medios extraíbles que estén conectados en el momento de la infección, o carpetas de red (o en la nube) accesibles, impidiendo el uso de un software antimalware o antivirus tradicional sea neficaz, al permitirnos estos, eliminar la amenaza en sí, pero no recuperar los datos una vez ya han sido cifrados.

Objeto del Análisis

Trabajaremos con una muestra de CryptoLocker que es sin duda uno de los ransomware de cifrado más comunes, identificada por las siguientes huellas de ficheros:

  • SHA-256: 0ef1fefdf99474e0a322c0f64b501934ebd2e910dd36fdca46ddf87470a5d7ec
  • MD5: f76e1d7abc6e97ac38443928fcd9b0a2

Hallazgos


Vías de Infección

Las vías de infección más comunes incluyen los correos electrónicos basura (SPAM), habitualmente utilizando en ellos engaños (técnicas de ingeniería social) como entregas de cartas de Correos, paquetes, envío de facturas y albaranes falsos, etc., y también se hace despliegue de este malware por otras vías, como la descarga de antivirus/antimalware , drivers, actualizaciones, anuncios... falsos y la instalación sobre equipos de botnets, afectados por malware como Zeus.

En muchas ocasiones la distribución de software falso como el comentado se produce en páginas de descargas ilegales, contenido multimedia protegido (como películas y series), pornografía, blogs personales infectados, y otros.

Mecanismos de Evasión y Ocultación

Este malware consulta el estado de diversas herramientas de protección como antivirus y antimalware conocidos, tratando de desactivar las mismas en el registro en caso de encontrarlas y parando sus procesos correspondientes.

El binario se ha creado utilizando algún mecanismo de ocultación de parte de su información como los nombres de dominios a los que tratará de conectar, extensiones de ficheros a los que debe afectar y otros.

Cifrado de los datos

La muestra de CryptoLocker analizada es capaz de cifrar todo fichero accesible desde el ordenador que se infecta y sobre el que tenga privilegios de escritura, afectando al menos a 180 extensiones de ficheros conocidas, incluyendo: documentos ofimáticos, archivos comprimidos, multimedia, etc.
En cada carpeta afectada creará un fichero de texto con las instrucciones para la recuperación de los datos, mediante pago del rescate.

Estimamos que se utiliza cifrado simétrico AES-CBC. El vector de inicialización que requiere este tipo de cifrado, variará cada vez y pensamos está incluido en los primeros 16 bytes del fichero cifrado. Creemos que el cifrado RSA de 2048 bits, se utiliza para cifrar la clave de cifrado de AES-CBC que creemos que podría estar almacenada en el fichero key.dat.

Al infectar al equipo genera un fichero cuya ruta completa será: %APPDATA%\key.dat que borrará una vez termine de cifrar los datos. Presumiblemente está relacionado de alguna manera con la clave, además de otros datos del usuario, como veremos más aadelante.

Se producen varias comunicaciones al sistema de control a un total de cuatro dominios diferentes, entre ellas, primero registrará al equipo enviando información sobre éste (Sistema Operativo, Arquitectura, etc.) y luego indicar, una vez terminado el proceso de cifrado, que ese equipo se encuentra cifrado indicando el número de ficheros que ha logrado afectar, todas estas comunicaciones se llevan a cabo utilizando protocolo HTTP (sin cifrar) y pasando parámetros mediante métodos GET (estos se incluyen en la URL), codificados en Base 64.

Otros Daños

Este RansomWare tratará de eliminar, si cuenta con los privilegios suficientes, las Shadow Copies del sistema para dificultar la recuperación de los datos.

También, cambiará el fondo de pantalla por uno propio incluyendo las instrucciones de recuperación -mediante pago de rescate- de los datos.

Métodos de Defensa

Ilustración gracias a la cortesía de Alejandro Cuenca. Haga clic sobre la imagen para ampliar

  • El principal método pasa por contar con una correcta copia de seguridad de los datos, en dispositivos no accesibles por el equipo (por ejemplo, una unidad externa). Ya que esté será nuestro único medio seguro de recuperación en el caso de que se produzca una infección por un ransomware de cifrado.
  • Es posible, una vez detectados los dominios que utiliza un ransomware de cifrado, establecer mecanismos de defensa, impidiendo la navegación a estos sitios (por ejemplo en proxys corporativos) y/o la notificación en caso de intento de acceso, para poder localizar los equipos infectados y los posibles intentos de comunicación por si incluyeran detalles como la clave de cifrado. Esta es la estrategia empleada en la técnica denominada: DNS Sink Holes que impide el acceso a los sistemas de control (habitualmente conocidos como Command & Control (C&C), del inglés).
  • También, el comportamiento sobre los ficheros en disco o el registro, podría ser detectado, por ejemplo mediante trampas (honeypots, o tarros de miel, del inglés), como hacen herramientas como Anti Ransom o detectando el comportamiento (uso de cifrado por ejemplo), como en el caso de: Crypto Monitor
  • Limitar los privilegios de los usuarios a los mínimos imprescindibles tanto en su sistema como carpetas compartidas, que es una buena práctica de seguridad en general, también puede ayudarnos a reducir los daños producidos por este tipo de amenazas y otras.
  • Detección temprana: creemos que pueden ser útiles sistemas trampas (honeypots), ya que junto con sistemas de análisis (automáticos o manuales), podrían ayudarnos a detectar nuevas amenazas antes de que estás sean ampliamente conocidas (*momento en el cual también somos más vulnerables ya que menos sistemas de anti-virus serán capaces de detectarlas.)

Método de investigación

Para llegar a las conclusiones aquí presentadas llevamos a cabo los siguientes análisis sobre la muestra de RansomWare mencionada:
  • Estudio de las vías de infección: analizando los estudios publicados sobre muestras similares de RansomWare y consultando al Instituto Nacional de CiberSeguridad (INCIBE).
  • Análisis automático en virustotal: utilizando su servicio web y revisando la información referente a la muestra sobre la que trabajaremos, para tener una primera opinión sobre con qué estamos trabajando.
  • Análisis estático, lo que implica analizar la muestra sin ejecutarla ni revisar su comportamiento en ejecución, incluyendo: Revisión de las cabeceras PE (Portable Executable).
    • Análisis de packers.
    • Extracción de recursos: incrustados dentro del ejecutable, como pueden ser el icono del fichero, imágenes, etc.
    • Extracción de cadenas de texto.
  • Análisis dinámico, que sí implica la ejecución del malware en un entorno de pruebas controlado (parte del laboratorio de pruebas utilizado), incluyendo:
    • Revisión de procesos generados por el malware.
    • Análisis de modificaciones sobre el registro del sistema.
    • Búsqueda de rootkits
    • Análisis de red, que también implica la ejecución controlada de la muestra, incluyendo:
    • Análisis del tráfico generado por una máquina infectada.
    • Resolución de nombres (DNS ).
    • Peticiones HTTP (Web).
  • Análisis automático en sandbox, utilizando cuckoo sandbox , que es un estándar en el análisis de malware. Incluyendo:
    • Ejecución en sandbox de las muestras y análisis automático.
    • Revisión de los aspectos encontrados.
    • Comparación de dichos resultados con los observados mediante nuestras pruebas manuales en busca de posibles anomalías, incongruencias o detalles omitidos.
  • Esquema del proceso de análisis.
    Esquema del proceso de análisis.

Laboratorio de pruebas


  • STYX: Ubuntu server 14.04 , utilizado principalmente para controlar y registrar el tráfico de red de la máquina winbox (de la que hablaremos a continuación). La base de este sistema se tomó de los recursos incluidos en los Training Resources
de ENISA (European Union Network and Information Security Agency).






  • winbox: Microsoft Windows 7, también su base parte de los recursos mencionados de ENISA. Sobre ella crearemos dos instantáneas (o snapshots):
    • Winbox-clean: imagen que cuenta con las herramientas de análisis estático
    • Winbox-cuckoo: imagen que cuenta con la configuración adecuada para ser utilizada mediante cuckoo-sandbox.

  • Análisis en VirusTotal

    Lo primero que nos indica el servicio si subimos la muestra, o bien, solicitamos buscar por su MD5 o SHA, es que esta muestra que ya ha sido analizada previamente en el sistema, como podemos ver en la siguiente captura:
    Resultado de análisis en virustotal
    Resultado de análisis en virustotal.

    También podemos comprobar como 35 de los 55 sistemas de detección, es decir un total aproximado del 63% de los empleados, fueron capaces de determinar que este binario era una amenaza. Solicitando el último análisis que realizó el sistema sobre esta muestra, encontramos:
    Resultado de virustotal
    Resultado de virustotal

    Indica que la reputación es la mínima posible (-100, siendo la escala de -100 –menos confiable- a 100 –altamente confiable-) y que el último análisis que se realizó fue hace algo más de una semana con una muestra llamada “evracpy.exe”.

    A continuación se nos presenta la información de qué sistemas son capaces de detectarlo y cómo se llama, dentro de ese sistema anti-malware, a dicha amenaza. El siguiente es un extracto de la detección por parte de algunos de los motores de antivirus, de los que dispone VirusTotal:
    Muestra parcial de los motores que detectan la amenaza en virustotal.

    Análisis estático


    Análisis de las cabeceras del binario

    Partimos de la información del ejecutable, mediante un análisis de las cabeceras PE y posible uso de empaquetadores (packers).
    Resultado de análisis en PEiD
    Resultado de análisis en PEiD

    PEiD nos muestra la información del tipo de binario (Win32 GUI), y la información de posibles packers. Observamos que indica que no se han utilizado packer.

    Contrastamos este resultado ExeInfoPE el cual, con su análisis avanzado nos muestra, como más probable (mayor puntuación), el que se haya utilizado "Morphine v1.2 (DLL)".
    Análisis avanzado del binario en ExeInfoPE
    Análisis avanzado del binario en ExeInfoPE

    Un empaquetado de este tipo implica ocultar la información del binario con cifrado (descifrándose en ejecución), existen trabajos para tratar de descifrar este tipo de binarios con depuradores (debuggers del inglés), que dejamos como vía para posibles trabajos futuros, como el siguiente:

    Polymorphic Crypter - Morphine 2.7 by Holy_Father

    Análisis de los recursos del binario

    Empleando el extractor de recursos Resource Hacker, encontramos únicamente el icono del binario:
    Información obtenida con Resource Hacker
    Información obtenida con Resource Hacker.

    Extracción de cadenas de texto

    A continuación revisamos las cadenas de texto incluidas dentro del binario, para ello empleamos binText.

    Tratamos de encontrar nombres de dominios, rutas a ficheros en disco, peticiones http y cadenas de texto que puedan ser sospechosas de la actividad del malware analizado, con resultado negativo.
    Entendemos que puede utilizar algún tipo de ofuscación, codificado o cifrado para ocultar dicha información dentro del binario.

    Análisis dinámico

    Como punto de partida, preparamos, nuestro laboratorio para poder trabajar con la máquina virtual winbox, en un entorno totalmente aislado (sólo podrá comunicarse con nuestra máquina styx, configurada para simular los servicios de Internet).

    Subimos la muestra a analizar a la máquina winbox y preparamos tanto Process Explorer, Process Monitor y RegShot, para trabajar.

    En este punto creamos una nueva instantánea, de manera que podamos hacer repetible el análisis desde el mismo punto, de manera sencilla.

    Ejecutamos la muestra y observamos que se cierra Process Explorer, táctica que utiliza mucho malware, para complicar el análisis o la detección de las amenazas.
    Tras unos segundos, se nos muestra la ventana indicándonos de que se han cifrado los datos de nuestro equipo, presentando la siguiente pantalla:
    Pantalla de Cryptolocker
    Pantalla de Cryptolocker

    Procesos Generados

    Mediante Process Monitor, podemos ver los procesos creados desde la ejecución del malware hasta que paramos la detección de eventos (pasados dos minutos). La siguiente captura muestra una parte de dichos procesos:
    Captura parcial de Process Monitor
    Captura parcial de Process Monitor.

    Observamos la lectura de numerosas entradas del Registro, entre otras:
    • Búsqueda de sistemas anti-virus/anti-malware instalados, intento de desactivación de estos.
    • Estado del Cortafuegos de Windows.
    • Servicio Terminal Services y su configuración.
    • Configuración de RPC.
    • Configuración Regional y de idioma (variables locale).
    La siguiente captura incluye algunos de estos procesos lanzados:
    Algunos procesos generados por el malware, capturados en Process Monitor.
    Algunos procesos generados por el malware, capturados en Process Monitor.

    Aplicando diferentes filtros, analizamos el comportamiento del ransomware en ejecución en cuanto a:

    • Apertura/Creación/Cierre de ficheros en disco.
    • Escritura en archivos de disco.
    • Conexiones de red.

    Entre los aspectos observados, podemos ver cómo se genera un archivo ejecutable llamado: "megdkmu.exe" (sucesivas ejecuciones veremos que el nombre va variando, aunque se mantiene el formato de siete caracteres y extensión ".exe"), en la ruta: "C:\Users\IEUser\AppData\Roaming\megdkmu.exe" A partir de ese momento, será este proceso el que se ejecute en memoria y continúe con la actividad del ransomware:

    • Generando un fichero: key.dat, en C:\Users\IEUser\AppData\Roaming\key.dat, y seguidamente ejecutando su proceso de cifrado de los ficheros de usuario:
      • Listando primero los directorios y subdirectorios y sus ficheros contenidos.
      • Cifrando (en caso de disponer de privilegios suficientes) los ficheros encontrados, dependiendo de su extensión y otros criterios establecidos en el software como el tamaño.
      • Eliminando, para finalizar, el fichero key.dat.
    También localizamos, dentro del árbol de procesos, un proceso hijo creado para eliminar las Shadow Copies de Microsoft, mediante la siguiente orden:

    "C:\Windows\System32\vssadmin.exe" delete shadows /all /Quiet



    Y también un subproceso de la consola del sistema Windows (cmd.exe), donde se solicita eliminar el fichero 0EF1FE~1.EXE (es decir, el propio ejecutable del malware), mediante el siguiente comando:

    "C:\Windows\system32\cmd.exe" /c del C:\Users\IEUser\Desktop\0EF1FE~1.EXE >> NUL

    Ficheros afectados

    Para analizar qué tipo de ficheros son el objetivo de este malware, creamos un total de 185 ficheros trampa, cada uno con una extensión dentro de las que son habituales para este tipo de ransomware.
    A continuación ejecutamos la muestra y observamos cuáles de ellos ha cifrado, en total, 180 como podemos observar en la siguiente captura de pantalla:
    Captura parcial de ficheros trampa cifrados.
    Captura parcial de ficheros trampa cifrados.

    Las siguientes son extensiones que se ha podido confirmar que este malware puede secuestrar (cifrar):
    .7Z.DMP.KDC.PDD.SLM.3FR.DNG.KF.PDF.SNX
    .ACCDB.DOC.LAYOUT.PEF.SR2.AI.DOCM.LBF.PEM.SRF
    .APK.DOCX.LITEMOD.PFX.SRW.ARCH00.DWG.LRF.PKPASS.SUM
    .ARW.DXG.LTX.PNG.SVG.ASSET.EPK.LVL.PPT.SYNCDB
    .AVI.EPS.M2.PPTM.T12.BAR.ERF.M3U.PPTX.T13
    .BAY.ESM.M4A.PSD.TAX.BC6.FF.MAP.PSK.TOR
    .BC7.FLV.MCMETA.PST.TXT.BIG.FORGE.MDB.PTX.UPK
    .BIK.FOS.MDBACKUP.PY.VDF.BKF.FPK.MDDATA.QDF.VFS0
    .BKP.FSH.MDF.QIC.VPK.BLOB.GDB.MEF.R3D.VPP_PC
    .BSA.GHO.MENU.RAF.VTF.CAS.HKDB.MLX.RAR.W3X
    .CDR.HKX.MPQGE.RAW.WB2.CER.HPLG.MRWREF.RB.WMA
    .CFR.HVPL.NCF.RE4.WMO.CR2.IBANK.NRW.RGSS3A.WMV
    .CRT.ICXS.NTL.RIM.WOTREPLAY.CRW.INDD.ODB.ROFL.WPD
    .CSS.ITDB.ODC.RTF.WPS.CSV.ITL.ODM.RW2.X3F
    .D3DBSP.ITM.ODP.RWL.XF.DAS.IWD.ODS.SAV.XLK
    .DAZIP.IWI.ODT.SB.XLS.DB0.JPE.ORF.SID.XLSB
    .DBFV.JPEG.P12.SIDD.XLSM.DCR.JPG.P7B.SIDN.XLSX
    .DER.JS.P7C.SIE.XXX.DESC.KDB.PAK.SIS.ZTMP

    Recuperación y análisis del fichero "key.dat"

    Utilizando los permisos de seguridad de las carpetas de Windows, impedimos al usuario con el que ejecutaremos CryptoLocker el borrar ficheros o carpetas, dentro de la ruta: %APPDATA%\key.dat, para impedir que elimine el fichero key.dat y poder proceder a analizarlo.
    Configuración Avanzada de Carpetas
    Configuración Avanzada de Carpetas Microsoft.

    De partida ya observamos que el fichero key.dat es diferente de una infección a otra, debido a, como veremos, a que contiene datos particulares de la infección que irán variando de uno a otro (dirección de bitcoin, por ejemplo).

    Para validar este aspecto realizamos dos infecciones sobre la misma máquina recuperando su estado y procediendo a comparar las huellas MD5 de los ficheros key.dat recuperados:

    # md5sum key.dat*
    cf56546477d61565b2f8644e6ae8b518  key.dat
    3bc1436b2f5e75ed7590b0b51f62a451  key.dat.2
    

    Analizando su estructura, vemos la dirección bitcoin en los primeros 34 bytes (la destacaremos en naranja), observando datos, presumiblemente relacionados con las claves de cifrado y otros datos de la víctima, en otras posiciones que destacaremos en verde:
    Fichero key.dat
    Fichero key.dat

    Validamos la dirección bitcoin en Base58 Encode, Decode, and Validate:
    Validación de dirección bitcoin incluida en key.dat
    Validación de dirección bitcoin incluida en key.dat.
    Para el análisis de este tipo de fichero, creamos unas clases básicas en el lenguaje Python, que pueden ser descargadas desde el siguiente repositorio en GitHub.

    Muestra parcial del código python.

    Creación de ficheros de ayuda a la recuperación

    Observamos que el malware, crea un fichero llamado: "HELP_RESTORE_FILES.txt" en cada uno de los directorios donde ha afectado a ficheros del usuario.
    El texto incluido es el siguiente:

    All your documents, photos, databases and other important files have been encrypted with strongest encryption RSA-2048 key, generated for this computer. Private decryption key is stored on a secret Internet server and nobody can decrypt your files until you pay and obtain the private key. If you see the main encryptor red window, examine it and follow the instructions. Otherwise, it seems that you or your antivirus deleted the encryptor program. Now you have the last chance to decrypt your files. Open http://34r6hq26q2h4jkzj.42k2bu15.com or http://34r6hq26q2h4jkzj.79fhdm16.com, https://34r6hq26q2h4jkzj.tor2web.blutmagie.de/ in your browser. They are public gates to the secret server. Copy and paste the following Bitcoin address in the input form on server. Avoid missprints. 17JHJkNPhM4mPvPEaJzdnSFjz545ejkQNs Follow the instructions on the server. If you have problems with gates, use direct connection: 1. Download Tor Browser from http://torproject.org 2. In the Tor Browser open the http://34r6hq26q2h4jkzj.onion/ Note that this server is available via Tor Browser only. Retry in 1 hour if site is not reachable. Copy and paste the following Bitcoin address in the input form on server. Avoid missprints. 17JHJkNPhM4mPvPEaJzdnSFjz545ejkQNs Follow the instructions on the server.

    En él se nos indica lo que ha sucedido con nuestros datos y cómo proceder a recuperarlos siguiendo las instrucciones para pagar el rescate establecido.

    Nota: Destacamos una vez más que el pago del rescate, no garantiza la recuperación de los datos en todos los casos, además de que alienta a los cibercriminales a seguir utilizando estos métodos.

    También creará un fichero en la siguiente ruta: : %APPDATA%\log.html, incluyendo el listado de los ficheros afectados y que será presentado dentro del navegador al usuario en caso de que pulse sobre el botón "Show files" de la ventana de CryptoLocker, como vemos en la siguiente captura:
    Log de ficheros cifrados, captura parcial.
    Captura parcial del log de los ficheros cifrados.

    Modificaciones sobre el registro del sistema

    Analizamos los cambios que lleva a cabo sobre el registro, entre los que destacamos:

    Arranque de CryptoLocker

    Activación de CryptoLocker en cada arranque, añadiendo la siguiente clave:

    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\msconfig: "C:\Users\IEUser\AppData\Roaming\megdkmu.exe"

    megdkmu, es el fichero que creó en el momento de infección, su nombre va variando de una infección a otra y se ubica en: "%APPDATA%".

    Fondo de Escritorio

    Establecimiento del fondo de escritorio con una imagen que contiene la misma información que el fichero HELP_RESTORE_FILES.txt, mediante las siguientes claves de registro:

    HKU\S-1-5-21-3463664321-2923530833-3546627382-1000\Control Panel\Desktop\Wallpaper: "C:\Users\IEUser\AppData\Local\Temp\BGInfo.bmp"
    HKU\S-1-5-21-3463664321-2923530833-3546627382-1000\Control Panel\Desktop\Wallpaper: "C:\Users\IEUser\Desktop\HELP_RESTORE_FILES.bmp"

    Incluimos una captura de dicho fondo de escritorio:
    Fondo de pantalla de Cryptolocker
    Fondo de pantalla de Cryptolocker

    Búsqueda de rootkits

    Utilizamos la herramienta GMER para la búsqueda de posibles rootkits instalados en la máquina víctima, con resultado negativo.

    El uso de rootkits, es habitual en mucho malware, en especial en aquel que desea mantener el control del equipo (como los que se añaden a botnets).

    Análisis de los Ficheros Cifrados (.ECC)

    Trabajaremos con los ficheros generados por el ransomware, con extensión .ECC. Desvelando los siguientes aspectos:

    Comprobación del uso de idénticas o diferentes claves de cifrado

    Para comprobar si el malware utiliza la misma clave de cifrado para cada fichero o diferentes, creamos un fichero de texto y dos duplicados idénticos del mismo. A estos tres ficheros los llamamos: honey1.txt, honey2.txt, honey3.txt:
    MD5 Ficheros trampa
    MD5 Ficheros trampa

    Observamos que se han cifrado con diferente clave (y/o diferente vector de inicialización), ya que el MD5 de cada uno de ellos, una vez cifrados es diferente, a pesar de que su tamaño sea el mismo:

    root@styx:/lab/analyses/cryptolockerHoney14May2015# md5sum Honey*.ecc
    c2fce3c0761eb1c60e8a0cfb49829189  Honey1.txt.ecc
    7512fbad7ee117e9a3c165296d12d2b8  Honey2.txt.ecc
    root@styx:/lab/analyses/cryptolockerHoney14May2015# ls -l Honey*.ecc
    -rw-r--r-- 1 root root 52 May 14 06:47 Honey1.txt.ecc
    -rw-r--r-- 1 root root 52 May 14 06:47 Honey2.txt.ecc -rw-rw-r-- 1

    Estructura del fichero .ECC

    Encontramos que el tamaño del fichero trampa antes del cifrado es de 18 bytes.
    Este valor, lo localizamos, dentro del fichero cifrado (.ECC), en hexadecimal en la posición hexadecimal 0x10 (se trata de un valor hexadecimal) (es decir, en el byte 16) en Little-Endian, ocupando 4 bytes.

    Como podemos verificar en los siguientes ejemplos. Los ficheros trampa generados, antes de ser cifrados, ocupan 18 bytes:

    $ ls -l Honey*.txt
    -rw-r--r-- 1 arnaiz root 18 May 14 15:54 Honey1.txt
    -rw-r--r-- 1 arnaiz root 18 May 14 15:54 Honey2.txt

    En el fichero con extension .ECC generado por el ransomware observamos este valor en hexadecimal en, como comentábamos, byte 16 (posición 0x10 hexadecimal), para ambos ficheros cifrados (Honey1.txt.ecc y Honey2.txt.ecc):
    honey1.txt.ecc
    Honey1.txt.ecc

    honey2.txt.ecc
    Honey2.txt.ecc

    En esa posición, los 4 bytes en ambos ficheros, representan el valor hexadecimal: 0x12000000, que transformado desde Little-endian, sería: 0x00000012 o 18 decimal, tamaño del fichero -sin cifrar- original.

    Pensando en AES que es uno de los cifrados simétricos utilizados en otros ransomware, en los modos CBC (Cipher Block Chaining) requiere un vector de iniciación de 16 bytes (justo los mismos bytes que hay delante del tamaño del fichero original), además un fichero de un total de 18 bytes cifrado con AES-CBC, genera una salida cifrada de 32 bytes.

    Como podemos ver en la siguiente captura de muestra (incluimos el mismo texto y tamaño en bytes que en el fichero original y seleccionamos cifrado AES con CBC), utilizando cualquier clave, obtenemos un resultante cifrado de, como comentábamos, 32 bytes:
    Prueba de cifrado con AES-CBC



    Prueba de cifrado con AES-CBC. Utilizando esta herramienta on-line

    Creemos que la clave de cifrado estaría almacenada de alguna manera en el fichero key.dat, y es el vector de inicialización (codificado o no) lo que se almacena en el propio fichero .ECC.

    El uso de AES-CBC con diferentes vectores almacenados junto con el propio fichero cifrado, encaja con el hecho de que dos ficheros idénticos resulten en datos cifrados diferentes.

    Incluimos una representación gráfica de la estructura de fichero que hemos estimado:
    Estructura estimada del fichero cifrado .ECC.
    Para el análisis de este tipo de fichero, creamos unas clases básicas en el lenguaje Python, que pueden ser descargadas desde el siguiente repositorio en GitHub.

    Análisis de Red

    Utilizaremos nuestro equipo virtual styx como único equipo visible en la red y mediante inetsim simularemos servicios de red como HTTP, DNS y otros. Para controlar el tráfico del equipo y posteriormente poder analizarlo, dichos servicios simulados resuelven todas las peticiones DNS a la IP del propio styx, de manera que, además de aislar totalmente el equipo, podemos hacer lo que se conoce como Hombre en el Medio de las peticiones de red.

    Análisis de solicitudes DNS

    Analizando el tráfico de red generado y registrado gracias a inetsim, encontramos las siguientes peticiones DNS desde la máquina infectada con la muestra:

    root@styx:/lab/analyses/cryptolocker2# grep 'requested name' report.2896.txt
    2015-04-22 13:20:34  DNS connection, type: A, class: IN, requested name: ipinfo.io
    2015-04-22 13:20:34  DNS connection, type: A, class: IN, requested name: 7tno4hib47vlep5o.63ghdye17.com
    2015-04-22 13:20:35  DNS connection, type: A, class: IN, requested name: 7tno4hib47vlep5o.79fhdm16.com
    2015-04-22 13:20:35  DNS connection, type: A, class: IN, requested name: 7tno4hib47vlep5o.tor2web.blutmagie.de
    2015-04-22 13:20:36  DNS connection, type: A, class: IN, requested name: 7tno4hib47vlep5o.tor2web.fi
    2015-04-22 13:43:26  DNS connection, type: A, class: IN, requested name: go.microsoft.com
    2015-04-22 13:44:54  DNS connection, type: A, class: IN, requested name: spynet2.microsoft.com
    2015-04-22 13:51:33  DNS connection, type: A, class: IN, requested name: time.windows.com

    Podemos ignorar las tres últimas peticiones a servicios de Microsoft ya que se trata del comportamiento normal de este Sistema Operativo. Observamos la solicitud de los siguientes nombres de dominio (destacados en negrita), producidos en unos dos segundos de diferencia:

    • ipinfo.io
    • 7tno4hib47vlep5o.63ghdye17.com
    • 7tno4hib47vlep5o.79fhdm16.com
    • 7tno4hib47vlep5o.tor2web.blutmagie.de
    • 7tno4hib47vlep5o.tor2web.fi

    Repitiendo estas mismas pruebas antes de que pasasen 24 horas, y también una vez pasadas 72 horas, obtuvimos estos mismos resultados.

    • Ipinfo.io, para obtener información sobre la IP, geo-localización, etc.
    • El resto de dominios son dominios tor2web , que son utilizados como pasarela a servicios ocultos dentro de la red TOR , para usuarios que no estén utilizando dicha red.
    • Comparando con informes existentes de otras muestras de Cryptolocker, observamos que algunos dominios se repiten y otros van variando como parte de la evolución del malware. Por ejemplo Symantec, encontraba dos de esos dominios y un tercero diferente y lo señalaba en su informe de 2 de Marzo de 2015.

    Solicitudes HTTP

    Extrayendo, también del histórico de inetsum, las peticiones HTTP que no correspondieran a solicitudes normales de un equipo Microsoft Windows (intentos de actualizaciones, etc.), encontramos las siguientes:

    root@styx:/lab/analyses/cryptolocker# grep HTTP report.1036.txt | grep -v "microsoft.com\|windowsupdate.com\|msftncsi.com"
    2015-04-21 22:54:40  HTTP connection, method: GET, URL: http://ipinfo.io/ip, file name: /var/lib/inetsim/http/fakefiles/sample.html
    2015-04-21 22:54:40  HTTP connection, method: GET, URL: http://7tno4hib47vlep5o.63ghdye17.com/state1.php?U3ViamVjdD1QaW5nJmtleT0yMkI2QTYwODdCOTFFMzM2MUY0MkEyRTk1NzA1NUJFNEM3NEE3Nzg5NEZCNjU1N0E5OUIwRjQwNUYzOThENzdEJmFkZHI9MUVFUzZla25IcHdQWksyWUoyVDNEWkxFS3c4dHMxWjROQSZmaWxlcz0wJnNpemU9MCZ2ZXJzaW9uPTAuMy40YSZkYXRlPTE0Mjk2NDk3MDgmT1M9NzYwMSZJRD02MiZzdWJpZD0wJmdhdGU9RzAmaXNfYWRtaW49MSZpc182ND0wJmlwPTxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPk15IHBhZ2U8L3RpdGxlPgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxwPlRoaXMgaXMgbXkgcGFnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+JmV4ZV90eXBlPTE=, file name: /var/lib/inetsim/http/fakefiles/sample.html
    2015-04-21 22:54:40  HTTP connection, method: GET, URL: http://7tno4hib47vlep5o.79fhdm16.com/state1.php?FTdWJqZWN0PVBpbmcma2V5PTIyQjZBNjA4N0I5MUUzMzYxRjQyQTJFOTU3MDU1QkU0Qzc0QTc3ODk0RkI2NTU3QTk5QjBGNDA1RjM5OEQ3N0QmYWRkcj0xRUVTNmVrbkhwd1BaSzJZSjJUM0RaTEVLdzh0czFaNE5BJmZpbGVzPTAmc2l6ZT0wJnZlcnNpb249MC4zLjRhJmRhdGU9MTQyOTY0OTcwOCZPUz03NjAxJklEPTYyJnN1YmlkPTAmZ2F0ZT1HMSZpc19hZG1pbj0xJmlzXzY0PTAmaXA9PGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+TXkgcGFnZTwvdGl0bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyBteSBwYWdlLjwvcD4KICA8L2JvZHk+CjwvaHRtbD4mZXhlX3R5cGU9MQ==, file name: /var/lib/inetsim/http/fakefiles/sample.html
    2015-04-21 22:54:45  HTTP connection, method: GET, URL: http://7tno4hib47vlep5o.63ghdye17.com/state1.php?U3ViamVjdD1DcnlwdGVkJmtleT0yMkI2QTYwODdCOTFFMzM2MUY0MkEyRTk1NzA1NUJFNEM3NEE3Nzg5NEZCNjU1N0E5OUIwRjQwNUYzOThENzdEJmFkZHI9MUVFUzZla25IcHdQWksyWUoyVDNEWkxFS3c4dHMxWjROQSZmaWxlcz0xNzY5JnNpemU9OTEmdmVyc2lvbj0wLjMuNGEmZGF0ZT0xNDI5NjQ5NzE0Jk9TPTc2MDEmSUQ9NjImc3ViaWQ9MCZnYXRlPUcwJmlzX2FkbWluPTEmaXNfNjQ9MCZpcD08aHRtbD4KICA8aGVhZD4KICAgIDx0aXRsZT5NeSBwYWdlPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8cD5UaGlzIGlzIG15IHBhZ2UuPC9wPgogIDwvYm9keT4KPC9odG1sPiZleGVfdHlwZT0x, file name: /var/lib/inetsim/http/fakefiles/sample.html
    2015-04-21 22:54:45  HTTP connection, method: GET, URL: http://7tno4hib47vlep5o.79fhdm16.com/state1.php?U3ViamVjdD1DcnlwdGVkJmtleT0yMkI2QTYwODdCOTFFMzM2MUY0MkEyRTk1NzA1NUJFNEM3NEE3Nzg5NEZCNjU1N0E5OUIwRjQwNUYzOThENzdEJmFkZHI9MUVFUzZla25IcHdQWksyWUoyVDNEWkxFS3c4dHMxWjROQSZmaWxlcz0xNzY5JnNpemU9OTEmdmVyc2lvbj0wLjMuNGEmZGF0ZT0xNDI5NjQ5NzE0Jk9TPTc2MDEmSUQ9NjImc3ViaWQ9MCZnYXRlPUcxJmlzX2FkbWluPTEmaXNfNjQ9MCZpcD08aHRtbD4KICA8aGVhZD4KICAgIDx0aXRsZT5NeSBwYWdlPC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8cD5UaGlzIGlzIG15IHBhZ2UuPC9wPgogIDwvYm9keT4KPC9odG1sPiZleGVfdHlwZT0x, file name: /var/lib/inetsim/http/fakefiles/sample.html

    • Con la primera solicitud obtiene la IP de la máquina, consultando a: ipinfo
    • Observamos que se trata de peticiones tipo GET , dentro de las mismas podemos comprobar que están solicitando una página ".php" , lo cual es un aspecto a tener en cuenta en operaciones contra el Command & Control (C&C).
    Aparentemente, las peticiones HTTP (destacadas en marrón) están utilizando una codificación Base 64, que una vez decodificado, muestra lo siguiente (lo presentamos cronológicamente, según van sucediendo las conexiones):

    Subject=Ping&key=22B6A6087B91E3361F42A2E957055BE4C74A77894FB6557A99B0F405F398D77D&addr=1EES6eknHpwPZK2YJ2T3DZLEKw8ts1Z4NA&files=0&size=0&version=0.3.4a&date=1429649708&OS=7601&ID=62&subid=0&gate=G0&is_admin=1&is_64=0&ip=<html>
      <head>
        <title>My page</title>
      </head>
      <body>
        This is my page.
    
    
      </body>
    </html>&amp;exe_type=1

    En esta primera solicitud a su centro de control, claramente está registrando el equipo como nueva víctima, está indicando que es administrador, versión del sistema, fecha y hora, etc. La dirección IP, obtenida mediante a la llamada a ipinfo.io, incluye información HTML devuelta por nuestro simulador HTTP (destacada en marrón).
    Se incluyen otros elementos, como:
    (1)
    • Subject: ping , entendemos que se trata de la primera comunicación para, como comentábamos, registrar el equipo.
    • Key: que varía de una ejecución a otra de la muestra, podría tratarse de un identificador del equipo y también podría estar relacionado con la clave del mismo. (22B6A6087B91E3361F42A2E957055BE4C74A77894FB6557A99B0F405F398D77D)
    • Addr: este valor es la dirección bitcoin asignada al usuario para el pago del rescate, es única para cada víctima y viene en formato base-58, utilizado en las direcciones bitcoin. (1EES6eknHpwPZK2YJ2T3DZLEKw8ts1Z4NA)
    • Files: que indica como confirmamos más adelante, el número de ficheros cifrados en el momento en que se produce la comunicación (0 ya que se trata de la primera comunicación.
    • Size: desconocemos qué indica este atributo. (0)
    • Is_64 => indica si la arquitectura es de 64 bits o no. (0 que indica que no es una arquitectura de 64 bits).

    Validamos la dirección bitcoin, mediante la utilidad web Base58 Encode, Decode, and Validate:
    Validación de dirección de bitcoin
    Validación de dirección de bitcoin


    * Tratamos de utilizar los datos incluidos en dicho fichero junto con la información enviada en las peticiones HTTP mostradas anteriormente que incluía un atributo llamado key, como claves de descifrado y verificación con resultado negativo.

    (2)
    • No pudimos decodificar este valor enviado, creemos que puede estar codificado de alguna otra manera, o bien utiliza algún tipo de cifrado u ofuscación.

    (3)
    • Subject: Crypted (cifrado, del inglés), entendemos que indica que ya se han cifrado ficheros en el equipo víctima.
    • Files: indica el número de ficheros afectados (1769, como mostraremos a continuación).
    • Size: (9) El valor ha cambiado desde la primera comunicación, pero aún no tenemos indicios suficientes para poder determinar en qué está basado.
    • Versión: nuestra hipótesis es que se trata del número de versión del malware (0.3.4a)
    • Fecha: cuyo valor (1429649714) es un sello de tiempo, o timestamp , que marca la fecha y hora que tiene el equipo en el momento de la comunicación. (06/01/2015, 5:41pm (UTC).
    • OS: que entendemos que se trata de un identificador del Sistema Operativo infectado (7601).
    • ID: No tenemos indicios suficientes para saber de qué se trata, aunque creemos que está relacionado con el equipo de la víctima (62)
    • Subid: entendemos que se trata de un valor relacionado con el anterior (una subcategoría), (0).
    • Gate: no sabemos a qué hace referencia este parámetro (G0).
    • is_admin: se trata de un valor, en este caso positivo (1), indicando si el usuario con el que se ha ejecutado el malware y por tanto, los privilegios que tiene este aplicativo, es administrador o no.

    Confirmamos que el número de ficheros se trata del número de ficheros afectados, filtrando nuestro informe de ficheros creados (gracias a regshot) en busca de ficheros con extensión .ECC, es decir ficheros cifrados por CryptoLocker.

    root@pasteur:~# grep .ecc createdfiles.txt | wc -l
    1796

    (4)

    Subject=Crypted&key=22B6A6087B91E3361F42A2E957055BE4C74A77894FB6557A99B0F405F398D77D&addr=1EES6eknHpwPZK2YJ2T3DZLEKw8ts1Z4NA&files=1769&size=91&version=0.3.4a&date=1429649714&OS=7601&ID=62&subid=0&gate=G1&is_admin=1&is_64=0&ip=(...)

    *Mostramos los datos que consideramos relevantes:
    • Size: (91).
    • Gate (G1)


    * No pudimos determinar la motivación de ese cambio.

    Siguientes pasos

    Nos quedaron muchas cosas por probar y por hacer, si bien, creemos que puede ser interesante invertir esfuerzo en:

    • Análisis en debugger para tratar de descifrar el binario, deshaciendo el trabajo del packer, como en: Polymorphic Crypter - Morphine 2.7 by Holy_Father.
    • Un análisis dinámico de mayor profundidad tratando de determinar mediante un depurador, cómo lleva a cabo el proceso de cifrado, librerías y funciones de cifrado utilizadas, generación de la clave y codificación u ofuscación de la misma si se produjera, etc.

    Referencias y Bibliografía

    Training Resources de ENISA (European Union Network and Information Security Agency).
    Malware Analyst's Cookbook and DVD: Tools and Techniques for Fighting Malicious Code Paperback – November 2, 2010 by Michael Ligh (Author), Steven Adair (Author), Blake Hartstein (Author), Matthew Richard (Author).
    The holiday season and ransomware - November 27, 2013 / Vadim Kotov
    Reverse Engineering Malware For Newbies ToorCon 16Published on Oct 29, 2014

    Sobre los Autores

    Este trabajo ha sido desarrollado como parte de un proyecto de fin de Master, en el MÁSTER UNIVERSITARIO EN SEGURIDAD DE TECNOLOGÍAS DE LA INFORMACIÓN Y DE LAS COMUNICACIONES de la Universidad Europea de Madrid.
    En él han trabajado:
    Marcos Gómez Hidalgo. Especialista en seguridad informática, tutor del proyecto. mgomezhidalgo _ARROBA_ gmail.com.
    Manuel López Hidalgo. Ingeniero especialista en seguridad informática. beat.ransomware _ARROBA_ gmail.com
    Jesús Arnáiz Calvo. Ingeniero especialista en seguridad informática. jesusarnaizcts _ARROBA_ gmail.com
    Finalmente, agradecemos a Alejandro Cuenca Merchán, diseñador, por sus ilustraciones. cuencamerchan _ARROBA_ outlook.com


    Ilustración de cabecera, cortesía de Alejandro Cuenca
    Boceto de las viñetas de cabecera, gracias a la cortesía de Alejandro Cuenca.

    Leer más...