Base64 - Algoritmo

PM_31_2COLBYN_CLAVES

Internet es un lugar inseguro, las personas temen a ser “hackeadas” o que les roben sus credenciales de acceso a sus cuentas de Redes sociales como Instagram, Facebook o plataformas de gestión de pago como PayPal, cada vez hay más víctimas de ataques informáticos y del mismo modo, más sofisticados, a partir de ello, se han creado métodos para evitar la visualización “legible” de información confidencial cuando es robada, o por lo menos muy difícil de descifrar.

La Criptografía, un método que se utilizaba desde el siglo V antes de Cristo para la ocultación de información, y que hasta día de hoy se sigue utilizando para ocultar mensajes, contraseñas y un gran etcétera, hay muchas maneras de esconder algo, unas más complejas que otras, pero todas con el mismo fin de “ocultar”, estas maneras se basan en una operación matemática, y cuanto más difícil sea esta, más eficiente será y más compleja de descifrar.

En este artículo explicaré ¿Qué es?, y como funciona el algoritmo de codificación Base64. Este es un sistema numérico que necesita 64 caracteres para codificar cualquier cadena, convierte datos binarios en caracteres ASCII. Se utiliza principalmente para compartir binarios mediante protocolos como HTTP o MIME para el intercambio de diferentes tipos de archivos de datos en Internet.

Usos de base64 en el hacking

Base64 se utiliza mucho en seguridad informática, ya sea en Criptografía o hacking en sí, se puede usar para codificar una Reverse Shell, compartir datos binarios, explotar distintas vulnerabilidades en sistemas, para “bypassear” Firewalls y para muchas mas cosas.

Codificando…

Vamos a codificar la palabra “TEST”, todo en mayúsculas, lo primero es pasar estos 4 bytes == 32 bits en 4 grupos de 8 bits cada uno.

El siguiente paso es hacer grupos de 6 bits de los 32 bits correspondientes.

Como quedaron 2 bits sueltos añadimos 4 bits de ceros para completar el último grupo a 6 bits.

En este caso el último quedo con 6 bits de ceros, pero esto no tiene por qué ser así.

Seguidamente, añadimos 2 bits de ceros delante de cada grupo de 6 bits.

Ahora tenemos 6 grupos de 8 bits cada uno, convertimos cada grupo por su valor en decimal.

Una vez hecho esto convertimos cada valor a su índice en de carácter ASCII correspondiente, esto lo podeis hacer desde aqui Tabla de índice Base64.

Y ya tendríamos nuestra cadena “TEST” codificada en Base64.

Decodificacion…

Para su decodificación hay que hacer básicamente el proceso inverso, si la cadena de texto contiene minúsculas, el resultado puede tener minúsculas, este es un ejemplo de decodificación de la palabra “CAsA” en mayúsculas y minúsculas y este es su hash Q0FzQQ== en base64.

Lo primero que hay que hacer ahora es encontrar el índice de cada byte del hash.

minusucula(1)

Una vez hecho, buscamos los binarios correspondientes en la tabla, Binarios y ASCII.

Podéis convertir los índices directamente en binario y así no hace falta restar 2 bits al principio de cada bloque de 8 bits.

Copia de minusucula(1)

Ahora le restamos 2 bits al principio.

Copia de minusucula(2)(1)

Restamos 4 bits del final y creamos grupos de 8 bits.

Copia de minusucula(3)(1)

Y finalmente convertimos cada bloque de 8 bits a su carácter correspondiente.

Copia de minusucula(4)(1)

Leave a comment