Análisis de malware

Usando Base64 para ofuscar malware

8 de septiembre de por Nitesh Malviya

¿Qué es el malware?

Malware significa software malicioso y software, en un lenguaje sencillo, significa algún programa escrito en cualquier lenguaje de programación. Entonces, si un programa malicioso se escribe intencionalmente para causar daño a cualquier computadora o servidor o para obtener acceso no autorizado a cualquier sistema, se llama malware.

¿Qué es la ofuscación?

La ofuscación es la técnica más utilizada para ocultar el código original escrito por el programador, lo que hace que el código ejecutable sea difícil de leer y de entender mientras se mantiene la funcionalidad del código escrito.

Técnicas de ofuscación de malware

Los creadores de malware utilizan muchas técnicas de ofuscación como Base64, Exclusive OR (XOR), ROT13, inserción de código muerto, cambios de instrucciones, Packers, etc.

En esta publicación, nos centraremos en la técnica de ofuscación Base64.

Ofuscación base64

Base64 es una técnica sencilla de ofuscación de malware. La razón por la que se utiliza la codificación Base64 es porque al utilizar Base64 es posible codificar datos binarios en formato de cadena ASCII. Por lo tanto, los atacantes codifican datos en formato base64 y los envían a través del protocolo HTTP. Base64 permite sólo 64 caracteres para la codificación, de ahí el nombre. Los personajes son –

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=

“=” se utiliza para relleno.

Método de codificación Base64

Puede consultar a continuación la tabla Base64 para convertir cadenas normales a codificación base64. Según la tabla, 0 corresponde a la letra ‘A’, 45 corresponde a la letra ‘t’, / corresponde a ’63’ y así sucesivamente.

Carbonizarse. Dic. Char. Dic. Char. Dic.A 0 W 22 s 44B 1 X 23 t 45C 2 Y 24 u 46D 3 Z 25 v 47E 4 a 26 w 48F 5 b 27 x 49G 6 c 28 y 50H 7 d 29 z 51Yo 8 y 30 0 52J 9 f 31 1 53K 10 gramos 32 2 54L 11 h 33 3 55M 12 y 34 4 56N 13 j 35 5 57O 14 k 36 6 58P 15 l 37 7 59Q 16 m 38 8 60R 17 norte 39 9 61T 18 o 40 + 62T 19 pág . 41/63 _U 42V 21 r 43 = almohadilla

Codificación y decodificación Base64

Hay muchas herramientas y sitios web en línea disponibles para codificar y decodificar cadenas base64.

Se puede utilizar la siguiente URL para codificar y decodificar cadenas base64:

https://www.base64decode.org/ y https://www.base64encode.org/

En nuestro caso, usaremos Python para codificar y decodificar la cadena base64. Por ejemplo, intentemos codificar y decodificar “InfosecInstitute”

Codificación: así es como se realiza la codificación usando Python . Abra la terminal Python y ejecute los siguientes comandos:

importar base64

texto_sin formato = “Instituto Infosec”

codificado = base64.b64encode(texto_sin formato)

imprimir codificado

SW5mb3NlY0luc3RpdHV0ZQ==

Así de sencillo es codificar una cadena base64.

Decodificación: así es como se realiza la decodificación usando Python. Abra la terminal Python y ejecute los siguientes comandos:

importar base64

codificado = “SW5mb3NlY0luc3RpdHV0ZQ==”

decodificado = base64.b64decode(codificado)

imprimir decodificado

Instituto Infosec

Así de sencillo es decodificar la cadena base64.

Identificando Base64

No es difícil identificar cadenas base64 en el tráfico binario o de red. Las letras codificadas en Base64 suelen ser una cadena larga que comprende un conjunto de caracteres en base64 (caracteres alfanuméricos, + y /). Si encuentra una cadena larga, es muy probable que se trate de cadenas codificadas en base64. Otra técnica sencilla es comprobar == presente en la cadena larga.

Ejemplo: SW5mb3NlYw==

La cadena anterior termina con ==. Por lo general, las cadenas de base 64 terminan con == donde = se usa para relleno.

Otro método para identificar base64 es utilizar la regla YARA. Aquí está la regla YARA de muestra para identificar cadenas codificadas en Base64:

base de reglas64

{

instrumentos de cuerda:

$a=”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”

$b=”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_”

condición:

$a o $b

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

Fuentes