Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Cadenas codificadas explicadas y deshechas a mano

5 tareas · 38 min · Principiante

Quien escribe un script a veces esconde un texto de quien lo lee a simple vista: lo parte en trozos, lo escribe con números, lo da vuelta o lo pasa por Base64. Nada de eso es cifrado, y cada técnica se deshace con papel y lápiz. Aquí ves cuatro de esas técnicas sobre un script de ejemplo inocuo, con la explicación del autor, deshaces dos a mano y miras qué rastro deja cada una en los registros del equipo. Los textos escondidos son órdenes de una palabra que no hacen nada; el objetivo es aprender a leer, no a esconder.

0 de 5 · 0%

Objetivo de la sala

Quien escribe un script a veces esconde un texto de quien lo lee a simple vista: lo parte en trozos, lo escribe con números, lo da vuelta o lo pasa por Base64. Nada de eso es cifrado, y cada técnica se deshace con papel y lápiz. Aquí ves cuatro de esas técnicas sobre un script de ejemplo inocuo, con la explicación del autor, deshaces dos a mano y miras qué rastro deja cada una en los registros del equipo. Los textos escondidos son órdenes de una palabra que no hacen nada; el objetivo es aprender a leer, no a esconder.

Base64 es una forma de escribir bytes con solo 64 símbolos para que viajen por canales que solo aceptan texto. No usa clave ni secreto: cualquiera puede revertirlo, y por eso decodificarlo no es «romper» nada, es leer el mismo mensaje en otro alfabeto. Lo mismo vale para unir trozos con +, escribir letras como números o invertir el texto: son disfraces, no candados.

En un script, estas técnicas sirven para que una búsqueda de palabras sobre el archivo no encuentre el texto escondido. Un analista las deshace en orden y deja constancia de cada paso para que otro pueda repetirlo.

Responde para continuar

Un script trae una orden escrita en Base64. ¿Qué es correcto decir de esa cadena?

Ver pista de ayuda

Base64 no tiene clave. Pregúntate si hay algo secreto que falte para deshacerlo.

En PowerShell, -EncodedCommand recibe un texto en Base64 que, una vez decodificado, es UTF-16: cada letra ocupa dos bytes y el segundo suele ser un byte vacío. Por eso las cadenas tienen un aspecto muy regular. Para leer una a mano se agrupan los símbolos de cuatro en cuatro, pero en el trabajo se usa una herramienta de decodificación para no equivocarse.

La tabla base64_paso_a_paso del laboratorio explica el mecanismo, y la tabla lineas trae la cadena del script de ejemplo con lo que resulta al decodificarla, como lo explica el autor de la sala. La orden escondida es inocua; interesa el método.

Responde para continuar

¿Qué orden de una palabra esconde la cadena codificada de la línea 11?

Ver pista de ayuda

Ejecuta `SELECT * FROM lineas` y mira la última columna de la fila de la línea 11.

Otra forma de esconder un texto es escribirlo como una lista de códigos: cada número es el código de una letra en la tabla ASCII y el script los convierte con [char] y los une con +. Deshacerlo es mecánico: se toma cada número, se busca su letra en la tabla y se escribe en orden.

Tu turno con la línea 5 del script de ejemplo. La tabla ascii_usado trae los códigos que hacen falta.

Responde para continuar

Calcula con la tabla qué palabra forman los códigos de la línea 5.

Ver pista de ayuda

Consulta `SELECT * FROM lineas` para ver los cuatro números y `SELECT * FROM ascii_usado` para las letras. Escribe las letras en el orden de los números.

Invertir un texto es la forma más simple y la más frecuente en ejemplos: se escribe la palabra de derecha a izquierda y el script la da vuelta antes de usarla. Se deshace leyendo desde el final, letra por letra. Conviene hacerlo despacio y comprobar que la palabra resultante tiene sentido en el contexto de las líneas vecinas.

Aplica el método al texto de la línea 8 del script de ejemplo.

Responde para continuar

Lee al revés, letra a letra, el texto de la línea 8 y escribe la palabra que resulta.

Ver pista de ayuda

Consulta la fila de la línea 8 en `SELECT * FROM lineas` y empieza por la última letra.

Esconder un texto del archivo no lo esconde del equipo. Cuando el script corre, PowerShell trabaja con el texto ya unido o decodificado, y si el registro de bloques de script está activado (evento 4104), guarda lo que procesó. La línea de comandos de un proceso, en el registro de procesos (evento 4688 con línea de comandos o evento 1 de Sysmon), muestra la cadena codificada tal como se pasó.

Eso importa al informar: el indicador más útil suele estar en el registro, ya decodificado, y no en el archivo.

Responde para continuar

Un script esconde una orden con -EncodedCommand. ¿Dónde se puede ver el texto ya decodificado en el equipo?

Ver pista de ayuda

Consulta `SELECT * FROM rastro` y compara qué guarda cada registro.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad