Cita de: kub0x en 4 Octubre 2020, 02:09 AM
Un ejemplo siguiendo tus pautas:
Tengo un fichero example con el texto hola.
Cifro el fichero con AES-256, password 1234 y encodeo en b64. Guardo el resultado en example.enc
Ahora, aplicando tu pipeline de comandos, el resultado es hola, en base64 es decir -> aG9sYQo=
cat example.enc | openssl enc -d -base64 | openssl enc -d -aes256 -pass pass:1234 | openssl enc -base64
Si quito el último b64 como te decía antes, el resultado es hola, tal y como yo quiero que sea.
cat example.enc | openssl enc -d -base64 | openssl enc -d -aes256 -pass pass:1234
Tu profe (probablemente) quiere que busques la secuencia flag-datos en el texto plano sin encodear, no en el texto plano encodeado en b64.
Lo lógico es guardar en un fichero los distintos plaintexts, obviamente, númerados y con su password con separadores o como quieras, para así, una vez obtenido el válido, saber que algoritmo-password es.
Eso o guardar el nº de intentos y descomponerlo en nº algoritmo y nº de password.
Si sabes lo que buscas, es decir, el flag o algo del plaintext, con una búsqueda valdría, en bash es sencillo.
Espero servir de ayuda. Saludos.
Muchas gracias por la ayuda kub0x, ya hemos solucionado el problema, todo lo que dices es cierto, ya te dije que era un poco chapuzas, estaba sacando el texto a un fichero (efectivamente estaba haciendo un poco el tonto al volver a encodearlo), y una vez ahí buscaba "flag" con un grep, si lo encontraba entonces ya me preocuparía de que me imprimiera que algoritmo y contraseña era, cosa que no sucedió. Al final resulta que hay que utilizar un algoritmo de OpenSSl que no se muestra con el comando de help convencional porque no se considera seguro (creo), en vez utilizamos este otro comando openssl list -cipher-algorithms, y así obtenemos una lista en la que si que estaba el algoritmo que necesitábamos.
PD: si animanegra lo pide puedo borrar esto para que mis compañeros no vean como se hace. Un saludo y muchas gracias por la ayuda