Funcionamiento de los 'crypters'

12
FUNCIONAMIENT O DE LOS 'CRYPTERS' Clase 16 21-11-2013

description

Funcionamiento de los 'crypters'

Transcript of Funcionamiento de los 'crypters'

Page 1: Funcionamiento de los 'crypters'

FUNCIONAMIENTO DE LOS 'CRYPTERS'Clase 16

21-11-2013

Page 2: Funcionamiento de los 'crypters'

CRYPTERS Tal y como avanzamos en el anterior post de esta serie sobre 'crypters',

los Antivirus, en adelante AVs, escanean los archivos en el disco de la computadora u ordenador y no en la memoria RAM y este comportamiento es el que aprovechan los 'crypters' para evadir la detección de los AVs. Veamos como lo hacen.

Page 3: Funcionamiento de los 'crypters'

CIFRADO Los 'crypters' utilizan técnicas de 'cifrado' para ocultar los archivos

maliciosos. Repasemos rápidamente en qué consiste un cifrado. Un cifrado es un procedimiento que utiliza un algoritmo y una clave para transformar un mensaje legible en otro indescifrable.

Veámoslo con un ejemplo: vamos a 'cifrar' el mensaje "HOLA" con el algoritmo de cifrado ROT (también conocido como cifrado César) y la clave de cifrado será "1". Este algoritmo lo que hace es, para cada carácter del alfabeto, avanza tantas posiciones como el valor de la clave de cifrado establecida, en este caso "1". Así pues, tras aplicar el algoritmo, la letra "A" se transforma en la "B", la "B" en la "C" y así sucesivamente. Por tanto el mensaje "HOLA" se transforma en "IPMB".

Page 4: Funcionamiento de los 'crypters'

CIFRADO De este modo hemos ocultado nuestro mensaje y para que alguien pueda

descifrarlo, necesitará conocer tanto el algoritmo empleado (ROT) como la clave de cifrado (1).

Obviamente este es un algoritmo muy sencillo y una clave igualmente sencilla, lo cual permitiría llevar a cabo ataques con el propósito de deducir el algoritmo y la clave, sin embargo, existen infinidad de algoritmos de cifrado enormemente complejos que pueden utilizarse y son utilizados para cifrar 'malware'.

Page 5: Funcionamiento de los 'crypters'

CIFRANDO MALWARE La idea básica que subyace en el concepto de 'crypter' es la siguiente: si se

cifra un archivo malicioso, éste será transformado en un archivo 'ininteligible' para el AV y por tanto no será detectado.

Lo cual es cierto, pero claro, existe un pequeño problema, y es que el archivo malicioso cifrado no funciona, no puede ejecutarse, así que es necesario encontrar una solución, una técnica que se encargue de descifrar y ejecutar el archivo malicioso. Esta pieza de software se denomina 'stub'.

Page 6: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB' Por regla general un 'crypter' consiste en dos elementos: el 'crypter' y el

'stub'. Esta última es la pieza más importante del conjunto.

Page 7: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB' El 'crypter' consiste generalmente en un programa que permite buscar y

seleccionar en el sistema de archivos del ordenador el ejecutable a cifrar (generalmente un archivo malicioso, pero es posible cifrar cualquier archivo que se desee). Algunos, permiten adicionalmente introducir la contraseña de cifrado de forma manual o generarla aleatoriamente. Y en ocasiones, algunos permite activar cierta medidas anti-forenses.

Una vez seleccionado el archivo a cifrar y pulsado el botón de 'cifrar' (Build en el ejemplo de la imagen) nos generará un 'nuevo ejecutable', el cual en realidad consiste en una composición del 'stub' y un 'payload', que no es más que el malware cifrado.

Page 8: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB'

Page 9: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB' Como puede observarse, 'crypter' y 'stub' están relacionados, ya que el

'crypter' se encarga de ejecutar el algoritmo de 'cifrado' y el 'stub' se encarga de ejecutar el algoritmo de 'descifrado'. Para que el 'stub' pueda descifrar el malware necesita conocer la clave utilizada en el proceso de cifrado.

En algunos casos, el programador del 'crypter' no da opción al usuario a elegir una clave, sino que la ha definido de antemano en su código, y en otras sí permite elegirla o generarla aleatoriamente, en cualquier caso, al generar el 'nuevo ejecutable' el 'crypter' ha de almacenar la clave en el algún lugar para que el 'stub' pueda encontrarla y descifrar el malware.

Page 10: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB' Si se observa en detalle este 'nuevo ejecutable', lo que vemos es una

configuración bastante habitual, en la que tras el archivo ejecutable que constituye el 'stub', se añaden unos separadores de delimitan el lugar en el que se encuentra la almacenada la clave y a continuación se añade el malware cifrado. Obviamente cada programador puede organizar esta distribución como más le guste y en ocasiones, en lugar de añadir directamente el malware cifrado tras el stub, lo introducen en un recurso del ejecutable PE.

Page 11: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB'

Page 12: Funcionamiento de los 'crypters'

'CRYPTER' Y 'STUB' Cuando este 'nuevo ejecutable', valga la redundancia, es ejecutado, el

'stub' se encarga de copiar a la 'memoria RAM' el malware cifrado, descifrarlo allí mismo, y a continuación ejecutar dicho 'malware' ya descifrado.