Hola, buenas noches, soy nuevo en el foro.
Estoy haciendo una práctica de una asignatura de seguridad informática y tengo que tratar de descifrar un texto que está cifrado con una clave simétrica y en base64 para ser imprimible.
Para ello tengo una lista de contraseñas, se que entre ellas está la correcta, pero no se que algoritmo se ha usado. Se que el texto descifrado, debe tener el formato flag{datos} (en datos una serie de letras y números).
Para ello estoy utilizando el siguiente script de bash:
#!/bin/bash
IFSAUX= $IFS
contrasenas=()
while IFS= read -r line
do
contrasenas+=("$line")
done < "contrasenas.txt"
#Contrasenas.txt tiene una lista de 1000 contraseñas
IFS= $IFSAUX
IFS=' ' read -r -a algoritmos <<< $(openssl help 2>&1 | grep -A 1000 "Cipher" | tail -n +2 | tr -d '\n')
for contrasena in ${contrasenas
do
for algoritmo in ${algoritmos
do
#este directorio tiene el texto a descifrar
cat openssl_reto/reto_SSI19 | openssl enc -base64 -d | openssl enc -d -$algoritmo -pass pass:$contrasena | openssl enc -base64 >> salida2.txt
#if [ $? -eq 0 ]; then
# echo $contrasena $algoritmo
#cat openssl_reto/reto_SSI19 | openssl enc -base64 -d | openssl enc -d -$algoritmo -pass pass:$contrasena | openssl enc -base64
#read -n1
# fi
done
done
soy bastante nuevo haciendo scripts de bash así que creo que está bashtante mal (perdón). La cosa es que en el fichero que me genera con los textos descifrados ninguno tiene el formato de flag.
Tenéis alguna idea de que puedo probar o de qué puede estar pasando?
sí queréis puedo pasar el texto a descifrar y las contraseñas pero por ahora creo que eso solo haría que mi post fuese demasiado largo.
Gracias de antemano si has dedicado tu tiempo a leerme y aún más gracias si pretendes contestarme. Espero que yo también pueda ser de utilidad en este foro algún día. Un abrazo
Tu profe tiene pinta de ser alguien altamente sexy e inteligente.
Está bien que como comenté os hagáis cuenta en las comunidades relacionadas con la seguridad.
Mayormente con lo que te ha dicho Kub0x lo deberías de sacara. Ya que:
1 estabas codificando en base64 la salida ¿Que esperabas exactamente conseguir con eso?
2 Como bien dice, teniendo todo o parte del contenido descifrado, os doy el formato del flag:
"flag{numero}" sólo tienes que obtener la salida que te vayan dando los cifrados y verificar cual tiene ese formato concreto. Puede que muchos cifrados den salida correcta a pesar de no descifrar correctamente asi que el exitcode del programa séa 0 no vale.
De todas formas lo de "soy bastante nuevo en bash" es un poco como "llorar por llorar" para que te ayuden. Podéis solucionarlo, y de hecho asi os lo comenté, con el lenguaje de programación que prefiráis. Haber elegido otro lenguaje.
saludos.