Qurtuba #Q2K17

Hola a todos! En la entrada de hoy me gustaría hablar sobre el congreso de seguridad Qurtuba (en la que fui ponente), más en concreto la edición 2017 celebrada en Córdoba el 17 y 18 de Noviembre.

 

Qurtuba es un congreso especial para mi, pues me permitió conocer a gente increíble que por suerte hoy puedo llamar amigos, sin contar el gran número de profesionales que se acercan y del maravilloso CTF que luego hablaremos de él.

 

Ponencias

Como siempre, el cartel de ponencias no defraudó al contar con grandes profesionales tocando todo tipo de ramas en la ciberseguridad, como una imagen vale más que mil palabras, a continuación dejo el cartel entero, del Jueves (Hack&Beers), del Viernes (Ponencias) y Sábado (Talleres).

 

 

¡Malware a mi!

Antes de comenzar a hablar sobre mi ponencia, me gustaría dar de nuevo a la organización por la oportunidad y sin duda por el trato recibido allí, sin duda 100% recomendable.

 

A continuación adjunto las diapositivas que utilicé en la ponencia:


¡Manos a la obra!

Bien, como el tiempo era limitado (35min aproximadamente), tampoco podía extenderme demasiado, así que toqué el tema a «grosso modo» de manera bastante básica. A partir de este punto, se desarrollará la presentación de manera similar a la realizada en la ponencia.

¿Qué es un Malware?

Empezando por el principio hice referencia a la palabra malware ¿pero qué es?

La palabra Malware viene del inglés Malicious Software, hace referencia a programas o scripts que afectan a nuestro ordenador y que puedan llegar a dañarlo. A priori, cuando la gente escucha la palabra malware lo asocia a troyano, ransomware, gusano, pero como hemos visto no es del todo así.

¿Todo el malware es dañino para el ordenador?

No, por ejemplo keyloggers o stealers solo roban información personal,por tanto, aunque sean dañinos para nosotros, no lo son para el ordenador (sin entrar al tema de ralentización etc…).

¿Qué tipos de malware hay?

Pese aunque hay más, me centré seguramente en los más conocidos (y vistos).

  • Virus: Altera el funcionamiento normal, de diferentes tipos (desde dañar el sistema a producir molestias). Están casi extintos.
  • Ransomware: Restringe el acceso a determinadas partes o archivos del sistema (cifrándolos), solicitando un rescate.
  • Troyano: Acceso completo al equipo, keylogger, administrador de archivos, posee persistencia…
  • Gusano: Gran capacidad para replicarse, utilizado principalmente para causar problemas en la red.
  • Spyware: Utilizado para espiar a usuarios, roban diferentes datos tales como datos de navegación, cookies, contraseñas…

¿Facilidad de creación?

Por suerte o por desgracia, la creación de algunos tipos de malware está a la orden del día, sin ni siquiera tener conocimientos informáticos, una persona es capaz de «crear» un troyano o un ransomware (entre otros), esto es gracias a la cantidad de código fuente disponible en internet o a la cantidad de RATs públicos que hay. Claro ejemplo son Bifrost, CyberGate, Spy-Net o incluso EDA2 en caso del ransomware, entre otros…).

Keep Calm And Get Antivirus,

¿Cómo funcionan los Antivirus?

Cada Antivirus tiene una base de datos en la cual almacena firmas. Dichas firmas, son fragmentos de códigos que identifican a cada malware.

De esta forma, cada software que contenga esta firma en su código, el Antivirus lo bloqueará y lo tomará como amenaza. También se utilizan los análisis heurísticos, básicamente examinan el comportamiento de los binarios en busca de un patrón similar al de algún malware detectado.

Tipos de Indetectabilidad

  • Runtime: Es cuando un binario es ejecutado y no es detectado por el antivirus.
  • Scantime: Es indetectable únicamente ante un scanneo. Pero a la hora de ejecutarlo, el antivirus lo detectará.
  • FUD: Se denomina FUD (Fully Undetectable) al binario que no se detecta por los antivirus.

Como conclusión a todo esto, podemos deducir de que el antivirus no es infalible, pero si es una capa extra de protección bastante recomendable.

Crypter Time

Un crypter es una herramienta que transforma un archivo A en un archivo B, editando parte del código de A.

Es decir, si tengo un archivo A que es detectado, un crypter puede modificar parte de su estructura interna dejándolo indetectable a ciertos antivirus. Claro está, que dicho crypter debe ser indetectable.

Los crypters utilizan técnicas de cifrado para ocultar el malware.

Para ello, utilizan un tipo de cifrado y una key.

De esta manera, el antivirus no podrá detectar ninguna amenaza, pues el binario está cifrado.

 

Partes de un Crypter (Cliente)

Un Crypter consta de dos partes, un Cliente y un Stub.

El Cliente es la parte gráfica que permite seleccionar el malware o archivo y le aplica el cifrado.

Los hay más simples y más avanzados (Persistencia, Propagación, Anti-Debug, Anti-Sandbox…).

Partes de un Crypter (STUB)

Mientras que el Stub es la parte vital del Crypter.

Este se encarga de ejecutar el algoritmo de descifrado. Para entenderlo mejor, el siguiente gráfico muestra el resultado final de como queda un malware.

Resumiendo

Tenemos nuestro Malware detectado, le pasamos el Crypter, y este le añade el Stub con el algoritmo de descifrado, la Key para descifrarlo y a continuación el malware cifrado, obteniendo de esta manera un binario indetectable.

De esta forma cuando se ejecute, el stub se encarga de copiarlo a la memoria RAM, descifrar el malware cifrado y ejecutarlo directamente en memoria, al no pasar por el disco, el antivirus no podrá detectarlo.

 

Análisis del binario

Estático

Consiste en estudiar el contenido del binario sin ejecutarlo.

Una ventaja frente al análisis dinámico, es que se puede saber exactamente qué es lo que realiza el malware, determinando sus consecuencias. Hay muchas herramientas para realizar un análisis estático, un claro ejemplo son IDA, Radare2, OllyDBG etc…

 

Dinámico

Consiste en la ejecución del malware en un entorno controlado (SandBox), de forma que podamos monitorizar cambios, acceso a recursos, envío de información etc…

Destacar, que gran cantidad de veces el malware modifica su comportamiento si detecta que el sistema se trata de una máquina virtual.

O bien también existe Hybrid-Analysis que utiliza una Falcon Sandbox.

Práctica

Como comenté anteriormente el tiempo era bastante limitado, por lo que quería hacer una práctica rápida de desinfección de malware y dejar «claro» que mediante un análisis estático y un dinámico se debería llegar a la misma conclusión. Para ello, partimos del siguiente binario.

Siendo el objetivo averiguar si es malware o no.

 

Mediante análisis estático descubrimos que hace peticiones a la siguiente dirección:

Y mediante dinámico, llegamos a la misma conclusión:

 

De hecho, al subirlo a una sandbox, nos detecta hasta el tipo de RAT que es (por las firmas comentadas anteriormente).

 

Por último, quería enseñar el siguiente método de desinfección, pues lo veo bastante útil.

Mediante ApateDNS, podemos redirigir todas las conexiones salientes a una IP local, la idea es redirigirlo a 127.0.0.1 y aprovechando que njRAT no tiene contraseña el server se conectará a nuestro cliente y podremos desinstalarlo.

 

 

 

Tendencias

Por último, quise mencionar un poco las tendencias actuales sobre malware, en esta parte seré breve, solo mencionar que como se puede observar la tendencia va en aumento y que la causa mayoritaria de infección sigue siendo el eslabón más débil, nosotros.

 

 

 

CTF

Por último y no por ello menos importante, me gustaría mencionar que pronto subiremos todos los write-ups de los retos, estad atentos! 😀

 

Espero que os haya gustado y hasta la próxima!

Álvaro Díaz (@alvarodh5)